C# Cal、EventAggregator和应用程序出现问题。已停用
我对CAL和事件聚合器有一个有趣的问题。当应用程序被停用或激活时,我试图发布一个事件application.activated和application.deactivated。我的一些模块有弹出框,我想在应用程序失去焦点时隐藏这些弹出框 下面是一个小代码示例 app.xaml.csC# Cal、EventAggregator和应用程序出现问题。已停用,c#,eventaggregator,cal,C#,Eventaggregator,Cal,我对CAL和事件聚合器有一个有趣的问题。当应用程序被停用或激活时,我试图发布一个事件application.activated和application.deactivated。我的一些模块有弹出框,我想在应用程序失去焦点时隐藏这些弹出框 下面是一个小代码示例 app.xaml.cs protected override void OnStartup(StartupEventArgs e) { eventAggregator.GetEvent<AppDeactivatedEvent&
protected override void OnStartup(StartupEventArgs e)
{
eventAggregator.GetEvent<AppDeactivatedEvent>().Subscribe(RunIt);
Deactivated += (s, a) => eventAggregator.GetEvent<AppDeactivatedEvent>().Publish(EmptyPayload.Empty);
Deactivated += (s, a) => Console.WriteLine("Deactivated - in app.xaml");
Activated += (s, a) => eventAggregator.GetEvent<AppActivatedEvent>().Publish(EmptyPayload.Empty);
base.OnStartup(e);
}
当应用程序失去焦点时,我会在控制台中看到以下内容
已停用-在app.xaml中
当应用程序重新获得焦点时,我得到以下信息
应用程序停用-模块
关于事件聚合器为什么要等到应用程序重新获得焦点后才能触发事件的任何想法
谢谢原来我的活动订阅有问题。没问题,只是眼睛疲劳
ea.GetEvent<AppActivatedEvent>().Subscribe(presenter.AppDeactivated);
public void AppDeactivated(EmptyPayload empty)
{
Console.WriteLine("App Deactivated - Module");
}