【问题标题】:PRISM and event aggregatorPRISM 和事件聚合器
【发布时间】:2011-05-09 19:16:13
【问题描述】:

我有一个 PRISM WPF 应用程序;我有一个 PatientViewModel,它在其构造函数中订阅了一个事件(比如 CultureChangedEvent),并执行一个动作。

在我的主视图模型中,我有一个 ObservableCollection。

如果用户从 ObservableCollection 中删除 PatientViewModel 实例,然后触发 CultureChangedEvent,则删除的 PatientViewModel 仍在内存中并接收事件。因此,目前,在删除 PatientViewModel 时,我取消了该事件的订阅;但我想知道这是正确的方法吗?还是我错过了什么?

谢谢! 升

【问题讨论】:

    标签: wpf prism eventaggregator unsubscribe


    【解决方案1】:

    即使从 observable 集合中删除了一个对象,它仍然存在(因此它仍然订阅该事件)。您处理此问题的方式是可接受的解决方案。另一种是将您的 ObservableCollection 公开为 ReadOnlyObservableCollection,然后提供您自己的添加和删除功能。在您的 Remove 函数中取消订阅该事件,然后从您的私有“正常”ObservableCollection 中删除该项目。因此,您可以在删除项目之前取消订阅该事件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-20
      • 2010-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多