ObservableCollection - 通过循环vs .Clear()删除项目

时间:2016-02-18 05:50:42

标签: c# wpf observablecollection

我有一个ObservableCollection,它绑定到一些ItemsControl(FlipView)作为其ItemsSource。我在触摸设备上滚动时遇到问题,一旦用户触摸屏幕,整个FlipView就会消失,当手指从屏幕上移开时它会重新出现。因此,为了解决这个问题,我必须通过在每次刷新时清除集合来解决它(而不是重新实例化它)。我注意到当我使用.Clear()来清除集合时发生了同样的问题(触摸),但是当我遍历集合并逐个删除项目时,问题就解决了。

所以,我还不清楚这两种清除ObservableCollection的方式有什么不同?

1 个答案:

答案 0 :(得分:0)

如果我在内部记得正确,ObservableCollection会维护IList,并为其分配List的实例。 ObservableCollection.Clear方法最终会在内部列表中调用Clear,然后List.Clear方法会使用Array.Clear来清除项目。