可以将ItemsControl绑定到non-ObservableCollection导致内存泄漏吗?

问题描述

在研究WPF应用程序中内存泄漏的潜在原因时,我遇到了这篇文章

https://oz-code.com/blog/net-c-tips/top-3-memory-leak-inducing-pitfalls-of-wpf-programming

本文提出了以下未经证实的主张(它承认),即与9200:9200以外的其他集合的绑定会导致泄漏:

避免绑定到不是ObservableCollection的集合


我对此内容有些粗略。我还没能 找到此问题的根本原因,或找到任何有力的博客 或MSDN文章,但仍然:在某些情况下,我发现 将ItemsControl绑定到ICollection时发生内存泄漏 这不是ObservableCollection,而是将其更改为 ObservableCollection解决了这个问题。

这是准确的陈述吗?还是有其他更可能的解释?


我想知道,所描述的OP是否可能是由于绑定到未实现8200:9200的对象引起的? (https://stackoverflow.com/a/18543350/3195477)。

解决方法

与OP的要求不完全相同,但希望可以帮助到我,https://blog.jetbrains.com/dotnet/2014/09/04/fighting-common-wpf-memory-leaks-with-dotmemory/指出:

集合绑定泄漏

与WPF绑定泄漏类似的问题是 集合绑定泄漏。如果绑定到一个集合 没有实现 INotifyCollectionChanged 接口,WPF会创建一个 对此收藏的强烈引用。结果,它保留在内存中 在整个应用程序生命周期中。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...