MVVM指示灯-WP7页面/应用程序事件

MVVM指示灯-WP7页面/应用程序事件,mvvm,windows-phone-7,mvvm-light,Mvvm,Windows Phone 7,Mvvm Light,有没有办法使用MVVM Light来处理关闭、停用、激活等应用程序事件?您可以在App.xaml.cs中处理这些事件,并让它们使用默认Messenger实例发送消息。然后让任何视图模型注册以接收消息。如果您需要取消活动,请使用带有回调的消息通知应用程序取消。感谢Matt Casto为我提供了正确的方向 以下是工作代码: App.xaml.cs: private void Application_Activated(object sender, ActivatedEventArgs e)

有没有办法使用MVVM Light来处理关闭、停用、激活等应用程序事件?

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

感谢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));
    }
private void Application\u已激活(对象发送者,激活事件目标)
{
senger.Default.Send(新通知消息(AppEvents.Activated,string.Empty));
}
私有无效应用程序\u已停用(对象发送方,已停用目标)
{
senger.Default.Send(新通知消息(AppEvents.Deactivated,string.Empty));
}
私有作废应用程序\u关闭(对象发送方,ClosingEventArgs e)
{
senger.Default.Send(newnotificationmessage(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;
    }
});
Messenger.Default.Register(这个,n=>
{
开关(n.Content)
{
案例外观。停用:
_sessionPersister.Persist(这个);
打破
案例外观。激活:
var model=_sessionPersister.Get();
打破
}
});

是的,这很有效。但是应用程序启动呢?是否可以从App.xaml.cs强制创建ViewModel?