Cal、EventAggregator和Application.Deactivated的问题
本文关键字:Deactivated 问题 Application EventAggregator Cal | 更新日期: 2023-09-27 18:02:41
我在CAL和事件聚合器方面遇到了一个有趣的问题。我试图发布一个事件时,应用程序被停用或激活(应用程序。Activated和application.deactivated)。我的一些模块有弹出框,当应用程序失去焦点时,我想隐藏它们。
下面是一小段代码示例app.xaml.cs
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);
}
Module.cs
ea.GetEvent<AppActivatedEvent>().Subscribe(presenter.AppDeactivated);
主持人
public void AppDeactivated(EmptyPayload empty)
{
Console.WriteLine("App Deactivated - Module");
}
发生的情况是,当应用失去焦点时,我在控制台中得到以下内容停用app.xaml当应用程序恢复焦点时,我得到以下内容App停用- Module
你知道为什么事件聚合器要等到应用恢复焦点后才触发事件吗?
谢谢
原来我的事件订阅有问题。没事,就是眼睛累了