Шаблон MVVM прекрасно работает с MVVM Light лучше, но иногда мне кажется, что я ничего не понимаю.
У меня есть бизнес-приложение в SL 4, где у меня к настоящему времени 18 ВМ .. и еще, чтобы написать! Я применяю шаблон, который Лоран Бюньон использовал в своей сессии на MIX11 (с классом SimpleIoc).
Модель представления привязывается к представлению (назовите его «A»), но та же самая модель представления также привязывается к другому представлению (назовите ее «B»). Viewmodel, связанный с представлением «A», вызывается стандартным способом в ViewModelLocator. Viewmodel, связанный с представлением B, вызывается с другим ключом, чтобы быть уверенным, что это 2 разных экземпляра. Кроме того, они внедряются в разные службы DomainService, поэтому сущности, связанные с элементами управления в представлении, различны.
Модель представления регистрирует некоторые сообщения для отслеживания изменений в других моделях представления, с которыми она взаимодействует, например, изменение выбора означает, что пользователь хочет отображать другие данные для извлечения данных из БД).
Проблема в том, что если я вызываю представление A, а затем представление B, я регистрируюсь для одних и тех же сообщений 2 раза, поэтому у меня 2 операции с БД.
Что я считаю правильным, так это избавиться от модели представления, связанной с представлением A, когда я вызываю представление B (обычно, когда я закрываю представление A). Но я действительно не знаю, где его утилизировать, когда и как! Хорошо ... я мог представить, когда и как ... но ГДЕ?
Если вы думаете, что я в замешательстве, вы правы!