XAML中的WPF DataContext,为什么以及正确的方法是什么

问题描述 投票:0回答:1

当前,这是我为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的方式[

c# wpf xaml binding datacontext
1个回答
0
投票
通常看起来像

<Window ...> <Window.DataContext> <local:MainViewModel/> </Window.DataContext> ... <local:MyUserControl MyProperty="{Binding VmProperty}" .../> </Window>

© www.soinside.com 2019 - 2024. All rights reserved.