PRISM和事件聚合器

PRISM和事件聚合器

问题描述:

我有一个PRISM WPF应用程序;我有一个PatientViewModel,在它的构造函数中订阅一个事件(让我们说CultureChangedEvent),并执行一个动作。PRISM和事件聚合器

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

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

谢谢! L

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