繁体   English   中英

MVVM Light - WP7页面/应用程序事件

[英]MVVM Light - WP7 Page/Application Events

有没有办法使用MVVM Light来处理诸如Closed,Deactivated,Activated等应用程序事件?

感谢Matt Casto让我朝着正确的方向前进。

这是工作代码:

App.xaml.cs:

    private void Application_Activated(object sender, ActivatedEventArgs e)
    {
        Messenger.Default.Send(new NotificationMessage<AppEvents>(AppEvents.Activated, string.Empty));
    }
    private void Application_Deactivated(object sender, DeactivatedEventArgs e)
    {
        Messenger.Default.Send(new NotificationMessage<AppEvents>(AppEvents.Deactivated, string.Empty));
    }
    private void Application_Closing(object sender, ClosingEventArgs e)
    {
        Messenger.Default.Send(new NotificationMessage<AppEvents>(AppEvents.Closing, string.Empty));
    }

视图模型:

Messenger.Default.Register<NotificationMessage<AppEvents>>(this, n =>
{
    switch (n.Content)
    {
        case AppEvents.Deactivated:
            _sessionPersister.Persist(this);
            break;
        case AppEvents.Activated:
            var model = _sessionPersister.Get<TrackViewModel>();                
            break;
    }
});

您可以做的一件事是在App.xaml.cs中处理这些事件,并让它们使用默认的Messenger实例发送消息。 然后只需要任何视图模型注册即可接收消息。 如果您需要取消该事件,请使用带回调的消息告知应用程序取消。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM