XAML DataContext和ViewModel类型

时间:2010-12-16 14:58:35

标签: wpf xaml

我将MVVM用于我的应用程序,DataContext控件在我的c#代码中分配(不在XAML中)。

因此,XAML控件不知道其DataContext设置为哪个实例类型。结果是在XAML中我的viewmodel的绑定属性没有重构支持和intellisense。

有没有办法告诉XAML中的控件与DataContext链接的类型?

因此,当我在ViewModel中修改属性名称或搜索该属性的所有引用时,我希望也考虑XAML绑定中的此属性。

2 个答案:

答案 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可以在运行时更改,所以将它绑定到特定类型是没有意义的。