PRISM 5,EventAggregator失去订阅

时间:2014-07-16 10:20:44

标签: c# wpf mvvm prism eventaggregator

我正在尝试使用eventaggregator(Unity容器)在我的shell关闭时触发/发布事件 所以我可以在视图中保存一些设置。问题是,当我退出应用程序时,事件中不再有任何订阅者,就好像某些东西正在清除它们。我是事件聚合的新手,所以如果这是明显的事情就道歉!

我在我的Shell中完成了这个:

    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 个答案:

没有答案