我有一个ItemsControl,它使用DataTemplate在我的customClass中显示实现INotifyPropertyChanged的属性......
非常直截了当......
DataTemplate中的一些项目使用CommandBindings(例如按钮),还有一些项目有一些代码隐藏(yuck)。
当我清空ItemsControl并设置customClass = Nothing
的所有实例时,我的程序没有释放内存。这很快就成了问题!
知道我应该从哪里开始寻找?我甚至完全遍历每个DataTemplate实例的可视化树,并设置每个Visual = Nothing.
我不是真的,如果它应该有任何影响。
答案 0 :(得分:1)
不完全确定要查看的位置,但必须检查是否存在基础事件连接。
如果存在事件委托添加操作,请确保将其删除。
如果命令绑定看起来是个问题,请考虑在设置为空时找到清除命令绑定的方法。
此外,更激烈的是,开始寻求使用WeakReferences等,直到你能够至少找出造成泄漏的原因。
快乐狩猎!