我有一个ObservableCollection,它绑定到一些ItemsControl(FlipView)作为其ItemsSource。我在触摸设备上滚动时遇到问题,一旦用户触摸屏幕,整个FlipView就会消失,当手指从屏幕上移开时它会重新出现。因此,为了解决这个问题,我必须通过在每次刷新时清除集合来解决它(而不是重新实例化它)。我注意到当我使用.Clear()来清除集合时发生了同样的问题(触摸),但是当我遍历集合并逐个删除项目时,问题就解决了。
所以,我还不清楚这两种清除ObservableCollection的方式有什么不同?
答案 0 :(得分:0)
如果我在内部记得正确,ObservableCollection
会维护IList
,并为其分配List
的实例。 ObservableCollection.Clear
方法最终会在内部列表中调用Clear
,然后List.Clear
方法会使用Array.Clear
来清除项目。