Я новичок в шаблоне MVVW, поэтому вы должны простить меня, если я задам очень простой вопрос.
У меня есть две модели представления, мы будем называть их TreeViewViewModel и ListViewViewModel.,TreeViewViewModel привязывается к свойству IsSelected в своем представлении.Всякий раз, когда IsSelected изменяется, мне нужно сообщить ListViewViewModel, чтобы он мог обновить свой вид.
После некоторых исследований в Интернете я наткнулся на EventAggregator, который выглядит так, как будто он может быть хорошим решением.* Это правильное решение?Если так, как я должен идти о реализации этого?Или есть лучшее решение, которое я должен рассмотреть?Ниже приведена упрощенная версия того, как я думаю, что EventAggregator может быть интегрирован в ViewModel, публикующую событие.
public class TreeViewViewModel : INotifyPropertyChanged
{
public bool IsSelected
{
get { return _isSelected; }
set
{
if (value == _isSelected)
return;
_isSelected = value;
OnPropertyChanged("IsSelected");
// Is this sane?
_eventAggregator.GetEvent<TreeViewItemSelectedEvent>().Publish(value);
}
}
protected virtual void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}