【发布时间】:2019-01-18 05:43:51
【问题描述】:
我在 Mainwindow.xaml 中有三个网格,每个网格中有多个控件。对于每个网格,我创建了一个单独的视图模型。
但在 Mainwindow.xaml 中,我可以将 DataContext 属性设置为仅其中一个类,这样只能将数据绑定到其中一个网格。
如何克服这个问题?
【问题讨论】:
我在 Mainwindow.xaml 中有三个网格,每个网格中有多个控件。对于每个网格,我创建了一个单独的视图模型。
但在 Mainwindow.xaml 中,我可以将 DataContext 属性设置为仅其中一个类,这样只能将数据绑定到其中一个网格。
如何克服这个问题?
【问题讨论】:
有几种方法。首先,您可以在 MainViewModel 中添加 ViewModel,它看起来像:
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 中,您可以为不同的网格设置数据上下文,例如:
<Window>
...
...
<Grid DataContext="{Binding G1VM}"/>
<Grid DataContext="{Binding G2VM}"/>
</Window>
【讨论】: