Доступ к свойству другой ViewModel - PullRequest
0 голосов
/ 12 июня 2018

У меня есть MainView и соответствующий MainViewModel.Внутри MainView у меня есть HeaderView и соответствующий HeaderViewModel.Это выглядит так:

enter image description here

Внутри конструктора MainViewModel's я создаю новый экземпляр HeaderViewModel и передаю ему некоторые параметры, подобные этому:

HeaderViewModel = new HeaderViewModel(_eventAggregator, "Kundenstamm");

Также есть свойство типа Customer, которое привязано ко всем моим текстовым полям:

private Customer _customer;
public Customer Customer
{
    get { return _customer; }
    set
    {
        _customer = value;
        OnPropertyChanged();
    }
}

Теперь мой вопрос, когда я нажимаю кнопку сохранения внутриHeaderViewModel, мне нужен доступ к собственности Customer.Как мне этого добиться?EventAggregator of Prism, на мой взгляд, не имеет смысла в этом случае.

1 Ответ

0 голосов
/ 12 июня 2018

Я мог бы представить несколько способов заставить это работать, но они в основном сводятся к:

"Заголовок" - это в основном пользовательский элемент управления;у него недостаточно информации для выполнения функции «Сохранить», поэтому его следует делегировать чему-либо, что делает.

Это можно сделать с помощью:

  • Events (OnSaved в HeaderViewModel, MainViewModel подписывается
  • Делегаты (Передают SaveCallback в HeaderViewModel конструктор
  • Событие Арбитр (3-й класс с событием OnSaved), header указывает, что он должен выстрелить)
  • Вероятно, куча других.

Лично я бы сделал первый. Второй тоже в порядке; третий только делает, так как если MainViewModel не имел прямого доступа к экземпляру HeaderViewModel.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...