[英]Can binding ItemsControl to a non-ObservableCollection cause memory leaks?
在研究 WPF 应用程序中 memory 泄漏的潜在原因时,我遇到了这篇文章:
https://oz-code.com/blog/net-c-tips/top-3-memory-leak-inducing-pitfalls-of-wpf-programming
本文提出以下未经证实的声明(它承认),即绑定到除ObservableCollection
之外的 collections 会导致泄漏:
避免绑定到不是 ObservableCollection 的 collections
我对这个的细节有点粗略。 我还没有找到这个问题的根本原因,或者找到任何确凿的博客文章或 MSDN 文章,但仍然:在某些情况下,我发现 memory 泄漏发生在 ItemsControl 绑定到 ICollection 时'不是 ObservableCollection,将其更改为 ObservableCollection 解决了这个问题。
这是一个准确的说法吗? 还是有其他更可能的解释?
我想知道所描述的 OP 是否可能是由绑定到未实现INotifyPropertyChanged
的对象引起的? ( https://stackoverflow.com/a/18543350/3195477 )。
不完全是OP所要求的,但足够接近帮助,我希望: https://blog.jetbrains.com/dotnet/2014/09/04/fighting-common-wpf-memory-leaks-with-dotmemory/ states :
集合绑定泄漏
与 WPF 绑定泄漏类似的问题是集合绑定泄漏。 如果绑定到未实现INotifyCollectionChanged接口的集合,则 WPF 会创建对此集合的强引用。 因此,它在整个应用程序生命周期内都停留在 memory 中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.