繁体   English   中英

将 ItemsControl 绑定到非 ObservableCollection 会导致 memory 泄漏吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM