【发布时间】:2011-01-08 17:23:21
【问题描述】:
dhopton 的comment 让我思考。在哪些情况下您不想使用 ObservableCollection?
【问题讨论】:
标签: .net wpf data-binding observablecollection
dhopton 的comment 让我思考。在哪些情况下您不想使用 ObservableCollection?
【问题讨论】:
标签: .net wpf data-binding observablecollection
当您希望更好地控制 ObservableCollection 发送的通知时。示例:默认实现虽然支持添加元素范围,但只是为整个集合抛出一个重置(我相信),而不是零碎地抛出一个包含所有新项目的通知。部分原因是 WPF 中的默认 CollectionView 不支持 Sizes > 1 的 INotifyCollectionChanged 通知(如果你这样做,它会抛出),所以它没有太大的动力。但是,如果您使用的是第 3 方网格,例如 Xceed,它有一个 CollectionView 派生,确实支持任意通知大小。这意味着当您将数据捆绑到列表中时,您可以通过将通知分组来获得一些相当不错的性能提升。
请注意,有一些与通知大小、通知优先级相关的有趣拐点会影响感知性能和实际性能(两者都不是您的想法)。
这是您希望接口松散的主要示例:我们键入 IList,并将实现更改为我们自己的异步加载集合,该集合在加载数据块时触发集合更改事件。 View 不必知道这种差异。它只是工作。
【讨论】: