在我的WPF应用程序中,我有一个给定ViewModel的View,并且在给定此View时,它将事件处理程序添加到ViewModel的PropertyChanged事件。当在GUI中发生某些操作时,我将删除视图并将另一个视图添加到容器中 - 这个新视图绑定到相同的ViewModel。取消订阅事件处理程序的策略
发生这种情况后,旧的View仍然在ViewModel中处理PropertyChanged事件。我假设这是因为视图尚未被垃圾收集器收集,因此还活着?好 - 我需要它停下来。我的假设是我需要手动从ViewModel中分离事件处理程序?如何处理这个问题是否有最佳做法?
谢谢!我喜欢这个解决方案比Dispose解决方案好得多。 – stiank81 2010-03-23 18:04:32
来自MSDN:“由于用户启动的系统主题更改,可能会在控件上引发”Loaded and Unloaded“。另外,如果您决定分离元素并重新粘贴,该怎么办?你会记得重新配置事件吗? – Zmaster 2011-10-25 11:31:36