Я делаю вводный c# проект MVVM (Caliburn.Micro), и я вставляю объект «задание» в каждую модель просмотра, чтобы информация о вакансии была доступна везде. что изменения внедренного объекта, на которые может повлиять метод в одной модели представления, будут отражены во всех моделях представления, и, похоже, так оно и есть, однако как будут обновлены связанные свойства, связанные с этим внедренным объектом?
Например, ниже: экземпляр JobClass передается и изменяется MenuBarViewModel. Как можно вызвать NotifyOnPropertyChange () в свойстве в MainPanelViewModel, чтобы связанный элемент управления xaml в связанном представлении улавливал изменения в базовом члене.
Или это не так, как должно работать. Это то, чем должен управлять агрегатор событий? Я надеялся, что выполнение задания упростит ситуацию, или это проблема с глобальной переменной ... Любые советы приветствуются!
Хануман ....
// MainWindowViewModel
public class MainWindowViewModel
{
private JobClass _jobClass;
private readonly IEventAggregator _eventAggregator;
public MenuBarViewModel MenuBarViewModel { get; set; }
public MainPanelViewModel MainPanelViewModel { get; set; }
public MainWindowViewModel()
{
_eventAggregator = new EventAggregator();
_jobClass= new JobClass ();
this.MenuBarViewModel = new MenuBarViewModel(_eventAggregator, _jobClass);
this.MainPanelViewModel = new MainPanelViewModel(_eventAggregator, _jobClass);
}
}
// MenuBarViewModel
public class MenuBarViewModel: PropertyChangedBase
{
IEventAggregator _events;
JobClass _jobClass;
public MenuBarViewModel(IEventAggregator eventAggregator, JobClass jobClass)
{
_events = eventAggregator;
_jobClass = JobClass;
}
public SomeMethod()
{
_jobClass.MethodToAddSomedata();
}
// MainPanelViewModel
public class MainPanelViewModel : PropertyChangedBase
{
IEventAggregator _events;
JobClass _jobClass;
public JobClass JobCase
{
get { return _jobClass; }
set
{
_jobClass= value;
NotifyOfPropertyChange(() => JobCase);
}
}
}