Я пытаюсь понять и реализовать EventAggregator, используя Caliburn micro. Я новый студент MVVM. Моя цель: я хочу создать окно / всплывающее окно, которое будет использоваться для обновления клиентов. Я хочу сделать возможным обновление клиентов из разных пользовательских элементов управления, используя одно и то же окно. Я мог быть совершенно не в порядке, поэтому, пожалуйста, прости меня за недостаток знаний.
Мой класс событий:
private CustomerModel _selectedCustomer;
public SelectedCustomerEvent(CustomerModel selectedCustomer)
{
_selectedCustomer = selectedCustomer;
}
public CustomerModel SelectedCustomer { get { return _selectedCustomer; } }
Мое всплывающее окно / окно, используемое для обновления клиента:
private IEventAggregator _events;
public CustomerUpdateViewModel(IEventAggregator events)
{
_events = events;
_events.Subscribe(this);
}
public void Handle(SelectedCustomerEvent message)
{
Customer = message.SelectedCustomer;
}
public CustomerModel Customer { get; private set; }
Один из пользовательских элементов управления, который откроет окно для обновления клиента:
private IEventAggregator _events;
public CustomerViewModel(IEventAggregator events)
{
_events = events;
_events.Subscribe(this);
}
..........
private CustomerModel _selectedCustomer;
public CustomerModel SelectedCustomer
{
get { return _selectedCustomer; }
set
{
_selectedCustomer = value;
NotifyOfPropertyChange(() => SelectedCustomer);
_events.PublishOnUIThread(new SelectedCustomerEvent(SelectedCustomer));
}
}
public void UpdateCustomer()
{
WindowManager wm = new WindowManager();
CustomerUpdateViewModel cn = new CustomerUpdateViewModel();
wm.ShowWindow(cn);
}
Моя проблема сейчас заключается в том, что я получаю сообщение об ошибке "new CustomerUpdateViewModel ()", которое говорит:не указан аргумент, соответствующий обязательному формальному параметру 'events' в CustomerUpdateViewModel (IEventAggregator).