Как связать несколько viewmodels с одним файлом xaml в MVVM wpf?

С помощью Javascript вы можете ссылаться только на один элемент, используя ID. document.getElementById и селектор jQuery $ вернут только первое соответствие элемента. Поэтому не имеет смысла использовать один и тот же идентификатор для нескольких элементов.

-1
задан Klaus Gütter 19 January 2019 в 06:59
поделиться

1 ответ

Есть несколько способов для этого. Во-первых, вы можете добавить 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>
0
ответ дан Polly 19 January 2019 в 06:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: