Вызовите метод в app.xaml.cs из ViewModel - PullRequest
0 голосов
/ 17 ноября 2011

У меня есть некоторый общий код, написанный на трех моделях ViewModels, который должен быть реорганизован.Я переместил код в методе в app.xaml.cs.Это правильный подход?Теперь мне нужно вызвать этот метод из ViewModels, должен ли я вызвать пользовательское событие (из всех ViewModels) и обработать его в app.xaml.cs?Если да, это означало бы, что я должен создать ссылки на ViewModels на странице app.xaml.cs (мы используем Unity).Это кажется правильным?Я новичок в MVVM, любые другие предложения?

Любая помощь будет оценена.

Ответы [ 2 ]

5 голосов
/ 17 ноября 2011

Вы не упомянули , что такое код. Почему это в файле App.xaml.cs?
Тот факт, что вам нужно вызывать его из трех разных моделей ViewMode, будет указывать на то, что вам следует преобразовать его в один из следующих вариантов:

  • тип статического помощника
  • базовый класс, который наследует ваш ViewModelss от

Работа ViewModel состоит в том, чтобы хранить и формировать (или преобразовывать) данные, готовые для отображения, но он не должен знать об отображении. Он также не должен знать о содержимом файла App.xaml.cs, тем более что ваши ViewModels могут оказаться в совершенно другом модуле или сборке, чем файл App.xaml.

0 голосов
/ 23 ноября 2011

Каждый раз, когда вы сталкиваетесь с «сквозными» задачами, например, когда необходимо общаться 2 совершенно отдельным объектам, шаблон стиля события (издатель / подписчик) работает хорошо.

Если вы используете Unity, используйте EventAggregator.

Таким образом, вы можете просто опубликовать событие с вашей виртуальной машины и сделать так, чтобы ваш app.xaml.cs прослушал событие.

таким образом, вам не нужно сообщать вашей виртуальной машине о app.xaml.cs.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...