我使用MVVM作为我的应用程序,控件的DataContext
分配在我的c#代码中(不在XAML中)。XAML DataContext和ViewModel类型
因此,XAML控件不知道其DataContext
设置为哪个实例类型。结果是,在XAML中,我的视图模型的绑定属性没有重构支持和智能感知。
有没有办法告诉XAML中的控件与DataContext
的链接类型?
因此,当我修改ViewModel中的属性名称或搜索该属性的所有引用时,我希望XAML绑定中的该属性也被考虑。
我使用MVVM作为我的应用程序,控件的DataContext
分配在我的c#代码中(不在XAML中)。XAML DataContext和ViewModel类型
因此,XAML控件不知道其DataContext
设置为哪个实例类型。结果是,在XAML中,我的视图模型的绑定属性没有重构支持和智能感知。
有没有办法告诉XAML中的控件与DataContext
的链接类型?
因此,当我修改ViewModel中的属性名称或搜索该属性的所有引用时,我希望XAML绑定中的该属性也被考虑。
没有框架支持,你可以做的最好的事情就是告诉VS设计者DataContext的'形状',这样它会给你提示属性。如果你想使你的解决方案的更多重构,防潮,我会建议丹尼尔的T4元数据的解决方案:
http://www.codeproject.com/KB/codegen/T4Metadata.aspx
这generatesmetadata,而您可以在XAML引用您的视图模型:
<StackPanel DataContext="{Binding Source={StaticResource Person}}">
<TextBlock >Name:</TextBlock>
<TextBox Text="{Binding Path={x:Static Metadata:PersonMetadata.NamePath}}"/>
</StackPanel>
Colin E.
不,因为DataContext可以在运行时更改,所以将它与特定类型绑定是没有意义的。
虽然这可能是真的,但我有很多情况下控件链接到一个特定的viewmodel类型 – thumbmunkeys 2010-12-16 15:14:22