我将MVVM用于我的应用程序,DataContext
控件在我的c#代码中分配(不在XAML中)。
因此,XAML控件不知道其DataContext
设置为哪个实例类型。结果是在XAML中我的viewmodel的绑定属性没有重构支持和intellisense。
有没有办法告诉XAML中的控件与DataContext
链接的类型?
因此,当我在ViewModel中修改属性名称或搜索该属性的所有引用时,我希望也考虑XAML绑定中的此属性。
答案 0 :(得分:3)
没有框架支持,你可以做的最好的事情是告诉VS设计师DataContext的'形状',以便它为你提供属性的提示。如果你想让你的解决方案更加重构,我会推荐Daniel的T4元数据解决方案:
http://www.codeproject.com/KB/codegen/T4Metadata.aspx
这为您可以在XAML中引用的视图模型生成元数据:
<StackPanel DataContext="{Binding Source={StaticResource Person}}">
<TextBlock >Name:</TextBlock>
<TextBox Text="{Binding Path={x:Static Metadata:PersonMetadata.NamePath}}"/>
</StackPanel>
Colin E。
答案 1 :(得分:2)
不,因为DataContext可以在运行时更改,所以将它绑定到特定类型是没有意义的。