Предпочтительный метод обработки событий приложения с помощью MVVM - PullRequest
1 голос
/ 20 марта 2011

Каков предпочтительный метод обработки всех событий из приложения при использовании MVVM (MVVM Light в моем случае)?Таким образом, такие вещи, как Application_Launching, Application_Activated, Application_Deactivated и Application_Closing.

Я хочу передать сообщение о каждом событии, на которое могут подписаться модели представления.Моя другая мысль состояла бы в том, чтобы вызвать метод на моделях представления непосредственно из событий App.xaml.cs.

Ответы [ 2 ]

0 голосов
/ 03 апреля 2011

Я храню все свои файлы в отдельных библиотеках DLL (модели в App.Model.dll, представления в App.Views.dll и т. Д.), Поэтому в основной среде загрузки очень мало кода.Я использую центральный контроллер и подключаю к нему события уровня приложения, центральные настройки и т. Д., Которые зависят от приложения.

0 голосов
/ 21 марта 2011

Те события, которые вы упомянули выше, вообще не имеют никакого отношения к представлению, потому что представление либо будет создано, либо уничтожено этими событиями.Этот момент заставляет события распространяться в коде ViewModel не обязательно способом MVVM, главным образом потому, что в те моменты времени возникновения событий нет View.Просто чтобы правильно реализовать это для «Разделения проблем», вы можете сделать так, чтобы у MainViewModel (в основном синглтона) было все 4 метода и вызывать его напрямую из App.xaml.В противном случае делегат события (мессенджер) будет более чистым.Я предполагаю, что вы хотите выполнить некоторые общие операции с этими событиями, такие как IsolatedStorage или операции сериализации / десериализации.

...