Как связать несколько viewmodels с одним файлом xaml в MVVM wpf? - PullRequest
0 голосов
/ 18 января 2019

У меня есть три сетки в Mainwindow.xaml с несколькими элементами управления в каждой сетке.Для каждой из сеток я создал отдельную модель представления.

Но в Mainwindow.xaml я могу установить свойство DataContext только для одного из классов, что позволяет только привязку данных к одной из сеток.

Как это побороть?

1 Ответ

0 голосов
/ 18 января 2019

Есть несколько способов для этого. Во-первых, вы можете добавить ViewModels в вашу MainViewModel, чтобы она выглядела так:

  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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...