PRISM 5, EventAggregator теряет подписку

Я пытаюсь использовать eventaggregator (контейнер Unity) для запуска / публикации события, когда моя оболочка закрывается, чтобы я мог сохранить некоторые настройки в View. Проблема в том, что когда я выхожу из приложения, подписчиков на событие больше нет, как будто что-то их убирает. Я новичок в агрегации событий, поэтому извиняюсь, если это что-то очевидно!

Я сделал это в моей оболочке:

    public Shell(IEventAggregator eventAggregator)
    {
        _eventAggregator = eventAggregator;
        InitializeComponent();
    }

    protected override void OnClosing(CancelEventArgs e)
    {

        var theevent =_eventAggregator.GetEvent<ShellClosingEvent>();
        theevent.Publish("closing");

    }

И мой вид:(подписываюсь в конструкторе)

        eventAggregator.GetEvent<ShellClosingEvent>().Subscribe((x) =>
        {
            if (x != "closing") return;
            using (var fs = new FileStream("clientGridSettings.xml", FileMode.Create, FileAccess.Write))
            {
                ClientsGrid.SaveCustomizations(fs);
            }

        });

Событие:

public class ShellClosingEvent : PubSubEvent<string>
{
}

0 ответов

Другие вопросы по тегам