взаимодействие между ViewModels
От: bananan85  
Дата: 03.06.11 03:02
Оценка:
Подскажите пожалуйста, как должно осуществляться взаимодействие между ViewModels в MVVM приложении?
Ситуация: есть список пользователей в окне (EmployeesViewModel). Модально вызывается окно для добавления нового пользователя(EmployeeViewModel). Как в EmployeeViewModel обновить список пользователей, которые находятся в EmployeesViewModel?
Re: взаимодействие между ViewModels
От: MxMsk Португалия  
Дата: 03.06.11 06:28
Оценка:
Здравствуйте, bananan85, Вы писали:

B>Подскажите пожалуйста, как должно осуществляться взаимодействие между ViewModels в MVVM приложении?

B>Ситуация: есть список пользователей в окне (EmployeesViewModel). Модально вызывается окно для добавления нового пользователя(EmployeeViewModel). Как в EmployeeViewModel обновить список пользователей, которые находятся в EmployeesViewModel?
Возможны разные варианты.

  1. В EmployeesViewModel создается команда для добавления нового пользователя. По этой команде создается то самое модальное окно и EmployeesViewModel подписывается на событие создания пользователя в EmployeeViewModel. Когда пользователь создается, EmployeeViewModel вызывает событие и EmployeesViewModel реагирует на это.
  2. Использовать EventAggregator. Модель EmployeesViewModel подписывается на глобальное событие создания пользователя, а EmployeeViewModel вызывает это событие.

Какой из вариантов выбрать, зависит от того, имеет ли EmployeesViewModel ссылку на EmployeeViewModel.
Re: взаимодействие между ViewModels
От: Экселенц Россия  
Дата: 03.06.11 10:33
Оценка:
Здравствуйте, bananan85, Вы писали:

B>Подскажите пожалуйста, как должно осуществляться взаимодействие между ViewModels в MVVM приложении?

B>Ситуация: есть список пользователей в окне (EmployeesViewModel). Модально вызывается окно для добавления нового пользователя(EmployeeViewModel). Как в EmployeeViewModel обновить список пользователей, которые находятся в EmployeesViewModel?

А по-моему, EmployeeViewModel не должна отвечать за обновление списка пользователей. EmployeeViewModel содержит свойства, на которые биндятся контролы формы добавления пользователя. После того, как форма закрыта по ОК, тот, кто вызвал её показ, по всей видимости это EmployeesViewModel, достаёт из свойств вбитые юзером данные, на их основе создаёт нового пользователя, добавляет его в модель, после чего обновляет свой список.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.