Проблема с Cal, EventAggregator и Application. Деактивировано
У меня интересная проблема с CAL и агрегатором событий. Я пытаюсь опубликовать событие, когда приложение деактивировано или активировано (application.activation и application.deactivation). Некоторые из моих модулей имеют всплывающие окна, которые я хочу скрыть, когда приложение теряет фокус.
это небольшой пример кода ниже
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 Когда приложение восстанавливает фокус, я получаю следующее Приложение деактивировано - Модуль
Любые идеи о том, почему агрегатор событий будет ждать, пока приложение не восстановит фокус, чтобы событие сработало.
Спасибо
1 ответ
Оказывается, у меня была проблема с моей подпиской на событие. нет проблем, просто усталые глаза