且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2022-02-06 02:57:13

解决方案很少.首先,您可以在 MainViewModel 中添加 ViewModels,它看起来像:

There are few ways for it. First, you can add ViewModels in your MainViewModel, so it will look like:

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

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

then in your Window, you should set it's data context like:

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

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

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

Then in your MainWindow.xaml you can set a datacontext for different Grids like:

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