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>
{
}