C# 如何在MVVM wpf中将多个viewmodels绑定到单个xaml文件?
我在Mainwindow.xaml中有三个网格,每个网格中有多个控件。对于每个轴网,我都创建了一个单独的视图模型 但在Mainwindow.xaml中,我只能将DataContext属性设置为其中一个类,这只允许将数据绑定到其中一个网格C# 如何在MVVM wpf中将多个viewmodels绑定到单个xaml文件?,c#,wpf,xaml,mvvm,C#,Wpf,Xaml,Mvvm,我在Mainwindow.xaml中有三个网格,每个网格中有多个控件。对于每个轴网,我都创建了一个单独的视图模型 但在Mainwindow.xaml中,我只能将DataContext属性设置为其中一个类,这只允许将数据绑定到其中一个网格 如何克服这个问题?几乎没有办法。首先,您可以在MainViewModel中添加ViewModels,使其看起来像: public class MainViewModel { public Grid1ViewModel G1VM {get;set;}
如何克服这个问题?几乎没有办法。首先,您可以在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中,可以为不同的网格设置datacontext,如:
<Window>
...
...
<Grid DataContext="{Binding G1VM}"/>
<Grid DataContext="{Binding G2VM}"/>
</Window>
...
...