微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决可以将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会创建一个 对此收藏的强烈引用。结果,它保留在内存中 在整个应用程序生命周期中。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。