我使用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