繁体   English   中英

如何将多个视图模型绑定到MVVM WPF中的单个xaml文件?

[英]How to bind multiple viewmodels to a single xaml file in MVVM wpf?

我在Mainwindow.xaml中有三个网格,每个网格中都有多个控件。 对于每个网格,我创建了一个单独的视图模型。

但是在Mainwindow.xaml中,我能够将DataContext属性设置为仅一个类,这仅允许将数据绑定到一个网格。

如何克服呢?

有几种方法。 首先,您可以在MainViewModel中添加ViewModels,如下所示:

  public class MainViewModel
{
    public Grid1ViewModel G1VM {get;set;}
    public Grid2ViewModel G2VM {get;set;}
}

然后在您的窗口中,应将其数据上下文设置为:

public class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();

        DataContext = new MainViewModel()
        {
            G1VM = new Grid1ViewModel(),
            G2VM = new Grid2ViewModel()
        };
    }
}

然后在MainWindow.xaml中,可以为不同的Grid设置数据上下文,例如:

<Window>
...
...
    <Grid DataContext="{Binding G1VM}"/>
    <Grid DataContext="{Binding G2VM}"/>
</Window>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM