Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Cal、EventAggregator和应用程序出现问题。已停用_C#_Eventaggregator_Cal - Fatal编程技术网

C# Cal、EventAggregator和应用程序出现问题。已停用

C# 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&

我对CAL和事件聚合器有一个有趣的问题。当应用程序被停用或激活时,我试图发布一个事件application.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);
}
当应用程序失去焦点时,我会在控制台中看到以下内容 已停用-在app.xaml中 当应用程序重新获得焦点时,我得到以下信息 应用程序停用-模块

关于事件聚合器为什么要等到应用程序重新获得焦点后才能触发事件的任何想法


谢谢

原来我的活动订阅有问题。没问题,只是眼睛疲劳

ea.GetEvent<AppActivatedEvent>().Subscribe(presenter.AppDeactivated);
public void AppDeactivated(EmptyPayload empty)
{
    Console.WriteLine("App Deactivated - Module");
}