当前,这是我为Windows和UserConrols在MVVM中设置DataContext的方式
<UserControl.DataContext>
<local:DataMainViewModel x:Name="vm"/>
</UserControl.DataContext>
但是,我从未被告知要这样做,但是我看到很多示例都在执行许多代码。之前我确实遇到过一些奇怪的问题,例如DataContext在我看来没有相同的实例,不确定。
无论如何,我只想问问,最好的方法是什么?我可以在XAML中保持这种方法吗?我听说我应该删除它,而是在诸如...的视图中进行设置。
public DataMainView() { InitializeComponent(); DataContext = new DataMainViewModel(); }
哪个是最好,最安全的方法?
之所以继续在XAML中进行设置,是因为我喜欢XAML的设计方法,使代码更整洁,最重要的是,我得到了绑定的智能感知。如果我应该在XAML中将其删除,请分享无需在XAML中设置DataContext即可获得绑定的智能感知的方法。因为如果我将其放在代码的后面,我将不再获得智能感知,并且当我尝试绑定对象时,必须正确输入从引用我的视图模型而来的所有内容。
谢谢,蒂姆
当前,这是我在MVVM中为Windows和UserConrols设置DataContext的方式
<Window ...>
<Window.DataContext>
<local:MainViewModel/>
</Window.DataContext>
...
<local:MyUserControl MyProperty="{Binding VmProperty}" .../>
</Window>