.net 什么时候不应该使用ObservableCollection和数据绑定?

.net 什么时候不应该使用ObservableCollection和数据绑定?,.net,wpf,data-binding,observablecollection,.net,Wpf,Data Binding,Observablecollection,多顿让我思考。在哪些情况下,您不想使用ObservableCollection?当您想更好地控制ObservableCollection发送的通知时。示例:默认实现虽然支持添加元素范围,但只会对整个集合进行重置(我相信),而不是发出包含所有新项的单个通知。这部分是因为WPF中的默认CollectionView不支持大小大于1的INotifyCollectionChanged通知(如果您这样做,它会抛出),因此没有太多动机让它这么做。但是,如果您使用的是第三方网格,例如Xeed,它有一个Colle

多顿让我思考。在哪些情况下,您不想使用ObservableCollection?

当您想更好地控制ObservableCollection发送的通知时。示例:默认实现虽然支持添加元素范围,但只会对整个集合进行重置(我相信),而不是发出包含所有新项的单个通知。这部分是因为WPF中的默认CollectionView不支持大小大于1的INotifyCollectionChanged通知(如果您这样做,它会抛出),因此没有太多动机让它这么做。但是,如果您使用的是第三方网格,例如Xeed,它有一个CollectionView派生,它不支持任意大小的通知。这意味着,当您将数据捆绑到列表中时,通过将通知分组,可以获得相当好的性能提升

请注意,与通知大小和通知优先级相关的一些有趣的拐点会影响感知性能和实际性能(两者都不是您的想法)

这是一个主要的例子,说明了为什么您希望接口松散:我们键入IList,并将实现更改为我们自己的异步加载集合,该集合在加载数据块时触发集合更改事件。View不必知道这种差异。它只是工作