c# - 为什么 ObservableCollection 不支持批量更改?

标签 c# wpf observablecollection

ObservableCollection 支持AddRangeRemoveRange 等操作会导致哪些潜在问题?既然 ObservableCollection 如此频繁地与 WPF 一起使用,那么 Microsoft 不提供它们肯定是有原因的。

您可以实现自己的支持批量操作的集合并实现 INotifyCollectionChanged。如果我将这样的控件绑定(bind)到 ItemsControl 会发生什么情况?

有人知道不支持批量更改的 ItemsControls 吗?

最佳答案

我不认为它有任何潜在的缺点或问题,只是它不存在。事实上,您会发现“System.Collections.Generic”中的大多数类型也不提供“AddRange”功能。

与此同时,许多人已经创建了他们自己的“ObservableCollection”版本来提供您想要的功能。 INotifyCollectionChanged 包含足够的信息,供其处理程序记录可能由于这个原因而影响的项目范围。

最后但同样重要的是,如果您绑定(bind)具有这些“范围”类型操作的集合,您会发现它们将按照您的预期与您的 UI 一起工作

关于c# - 为什么 ObservableCollection 不支持批量更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9570800/

相关文章:

c# - 列表框滚动条不跟随所选项目(使用 ICollectionView)

c# - 在循环突然停止的特定路径中创建 (N) 个目录

c# - page_load 和 onLoad 的区别

c# - 对分区的 CosmosDB 集合的查询不一致

wpf - 为什么我必须在 WPF 中使用 "Resources"?

.net - 设置ListView ItemTemplate并获取ObservableCollection相关对象

c# - Parallel.ForEach 周围和内部有锁的死锁

wpf - 如何更改为黑色 Windows 箭头光标?

wpf - 如何正确设置精美的垂直 ProgressBar 样式?

.net - 如何将动态的 Observable 集合组合成一个新的 Observable?