2013-08-27 3 views
1

У меня есть три модели и режимы просмотра, которые зависят друг от друга для проверки. Кроме того, модели должны реагировать на изменения друг друга. Например, если ModelA.Prop1 изменен, ModelB.Funds должен быть заселен из БД.Подтверждение между моделью MVVM

Как вы реализуете это в MVVM?

ответ

1

Как вы решаете, это может зависеть от вашей установки.

Если вы вызываете или обнаруживаете изменение в ViewModel, вы можете инициировать обновление из ViewModel. Поскольку ViewModel разрешено знать о модели, вы можете это сделать, сохраняя при этом шаблон MVVM. Для связи между ViewModels, например. между ViewModel ModelA и ViewModel ModelB вы можете использовать систему обмена сообщениями, такую ​​как брокер сообщений в свете MVVM.

Если модели завернуты в репозитории, вы можете создать хранилища, ответственные за синхронизацию моделей. Таким образом, вы сможете отложить синхронизацию как можно дольше.

Замечание, которое я хотел бы сделать, заключается в том, что если модели настолько зависимы, вы можете смотреть на одну модель вместо двух. Проверьте это первым! Если вы чувствуете потребность в настройке большого количества синхронизации и зависимостей между двумя моделями, это явный признак того, что вы можете смотреть на одну модель. Не путайте модель с классом; Модель может иметь несколько классов.

Смежные вопросы