使用 MVVM(在我的情况下为 MVVM Light)时,处理来自应用程序的所有事件的首选方法是什么?所以,像 Application_Launching
, Application_Activated
, Application_Deactivated
, 和 Application_Closing
.
我的想法是在 View 模型可以订阅的每个事件上广播一条消息。我的另一个想法是直接从 App.xaml.cs
调用 View 模型上的方法。事件。
最佳答案
您上面提到的那些事件与 View 完全无关,因为 View 要么被创建,要么被这些事件销毁。
这一点使得传播到 ViewModel 代码的事件不必是 MVVM 方式,主要是因为在这些事件引发时间中不涉及 View。
只是为了为“关注点分离”正确实现这一点,您可以让 MainViewModel(主要是单例)拥有所有 4 种方法并直接从 App.xaml 调用它。否则事件委托(delegate)(信使)会更干净。
我假设您想对这些事件进行一些常规操作,例如隔离存储或序列化/反序列化操作。
关于silverlight - 使用 MVVM 处理应用程序事件的首选方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5371331/