Я новичок в MVVM
шаблон проектирования, и у меня есть эти ViewModels:Связь между двумя ViewModels
ClassAViewModel
public class ClassAViewModel : INotifyPropertyChanged
{
private int _nbre = 0;
public int Nbre
{
get
{
return _nbre;
}
set
{
_nbre = value;
PropertyChanged(this, new PropertyChangedEventArgs("Nbre"));
}
}
#region Events
public event PropertyChangedEventHandler PropertyChanged;
#endregion
}
И ClassBViewModel
PUBLIC class ClassBViewModel: INotifyPropertyChanged
{
private Boolean _IsBiggerthanFive = false;
public bool IsBiggerthanFive
{
get
{
return _IsBiggerthanFive;
}
set
{
_IsBiggerthanFive = value;
PropertyChanged(this, new PropertyChangedEventArgs("IsBiggerthanFive"));
}
}
#region Events
public event PropertyChangedEventHandler PropertyChanged;
#endregion
}
мне нужно знать, существует ли меканизм уведомления между двумя режимами просмотра, т. е. в моем случае если _nbre > 5
в первой модели просмотра, будет отображаться вторая модель просмотра, а значение _IsBiggerthanFive
будет изменено. Итак:
- Как две модели могут обмениваться данными между ними без инстанцирования в другом?
- Каков наилучший способ выполнить эту задачу?
Самый простой подход, вероятно, заключается в создании ViewModel, который содержит экземпляр каждого из них, а затем подключает события для передачи данных между ними. – Andrew
Правильный шаблон проектирования для этого является Посредником. http://en.wikipedia.org/wiki/Mediator_pattern – Gjeltema
Другой подход - использовать Prism и его класс EventAggregator. Затем ViewModel A может поднять событие, а ViewModel B может подписаться на мероприятие, а не знать/заботиться, кто поднял это событие. –