Проблема с Cal, EventAggregator и Application. Деактивирована - PullRequest
1 голос
/ 19 июля 2011

У меня интересная проблема с 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);

1011 * Ведущий *

public void AppDeactivated(EmptyPayload empty)
{
    Console.WriteLine("App Deactivated - Module");
}

Что происходит, когда приложение теряет фокус, я получаю в консоли следующее Деактивировано - в app.xaml Когда приложение восстанавливает фокус, я получаю следующее Приложение деактивировано - модуль

Любые идеи о том, почему агрегатор событий будет ждать, пока приложение не восстановит фокус для запуска события.

Спасибо

1 Ответ

0 голосов
/ 22 июля 2011

оказывается, у меня была проблема с моей подпиской на событие.нет проблем, просто усталые глаза

...