How can i specify a designer datacontext for a style, so Resharper finds my properties?

后端 未结 2 1471
半阙折子戏
半阙折子戏 2021-01-31 04:21

I often bind the IsExpanded and IsSelected properties of a TreeViewItem to my viewmodel. This for example makes it possible to make an item pre-expanded when the tree is loaded

相关标签:
2条回答
  • 2021-01-31 04:46

    Have you tried:

        <Style TargetType="TreeViewItem" d:DataContext="{d:DesignInstance     
     test:TestItemViewModel}">
    

    Atleast for me the properties are highlighted and shown with IntelliSense in VS 2015 and R#9.

    Seems to be an identical solution to Specify datacontext type on listbox ItemContainer in style

    0 讨论(0)
  • 2021-01-31 04:53

    @lhildebrandt's answer is generally right, but in my case this solution produces errors that totally disable displaying the view in designer. Specifying <d:Style.DataContext> inside <Style> tag helped me.

    <Style>
        <d:Style.DataContext>
            <x:Type Type="local:MyTreeItem" />
        </d:Style.DataContext>
        <!--usual setters, triggers, etc.-->
    </Style>
    

    In this way d:DataContext can also be specified for controls, and we can provide it interfaces, nested classes and even generics without any errors: https://stackoverflow.com/a/46637478/5598194

    0 讨论(0)
提交回复
热议问题