У меня есть простое приложение, которое состоит из:
Модель
- Элементы
- Критерии фильтра, примененные к этому списку элементов
Просмотры
- WelcomePage
- MainItemsPage
- FilterEditPage
Яиспользуя MVVM Light и Windows Phone 7
В настоящее время у меня есть 3 модели представления, по одной для каждого просмотра.В прошлом у меня была единственная ViewModel, которая сделала общение, о котором я собираюсь спросить, очень простым.Однако я хотел использовать 3 отдельные виртуальные машины, так как это, кажется, правильный путь.
WelcomePage может установить один из критериев фильтра, прежде чем перейти к MainItemsPage.MainItemsPage связан со свойством Items, которое предоставляется его ViewModel.Эта ViewModel должна была отфильтровать этот список в зависимости от текущих критериев фильтрации.FilterEditPage позволяет пользователю редактировать полный набор критериев из 4 переменных.Когда критерии изменяются, коллекцию Items, используемую в ViewModel для MainItemsPage, необходимо повторно фильтровать.
Вопрос заключается в том, как передать поток изменений фильтра через приложение.Я знаю, что в MVVM есть концепция обмена сообщениями, а инструментарий MVVM Light предоставляет класс Messenger.Однако, с чем я борюсь, это где ответственность за отправку этих сообщений?
- 3 виртуальные машины идут в модель, когда им нужно работать с текущим набором фильтров?
- Все ли обновления фильтра проходят через FilterEditViewModel и что, в свою очередь, передает сообщение об изменении фильтра?
- Вернусь ли я к одной виртуальной машине для всех видов?
Я не вижу 1. работающего, потому что что-то должно будет заставить виртуальные машины вернуться к модели, которую я знаю.Я могу получить 3. работу прямо сейчас без проблем.Это так?
TIA
Пэт Лонг