【发布时间】:2015-10-14 12:59:20
【问题描述】:
我现在在WPF 编码中有一些东西可能会导致Memory leaks。比如删除对象包含订阅了 long life 资源的事件处理程序。这方面我看过this article。
现在,我的问题是:
如果我们的资源是 ViewModel 并且我们将其保存在 Static 对象中并将其提供给 Window DataContext 或 DataContext 或 UserControl 内的 UserControl,当我们想要到Close 我们的Window 我们应该所有 做以下工作来防止Memory leaks? :
- 从
ViewModel事件手动取消订阅Window或UserControl中的EventHandlers全部 - 解除绑定全部绑定
Elements Properties到ViewModel手动 - 解除绑定全部绑定
Commands到ViewModel手动
如果答案是肯定的,您建议以一种或多种方法自动完成这些工作的方法是什么,然后致电Window Closing。
【问题讨论】:
标签: c# wpf mvvm memory-leaks