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

C# ObservableCollection-通过vs.Clear()循环删除项目,c#,wpf,observablecollection,C#,Wpf,Observablecollection,我有一个ObservableCollection,它绑定到某个ItemsControl(FlipView)作为其ItemsSource。我在触摸设备上遇到了一个问题,当用户触摸屏幕时,整个FlipView就会消失,当手指从屏幕上移开时,它会重新出现。因此,为了解决这个问题,我必须在需要刷新集合时清除集合(而不是重新实例化它)。我注意到,当我使用.Clear()清除集合时,同样的问题(触摸)也发生了,但当我循环遍历集合并逐个移除项目时,问题得到了解决 因此,我仍然不清楚这两种清除Observabl

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


因此,我仍然不清楚这两种清除ObservableCollection的方法的区别是什么?

如果我在内部正确地记得,
ObservableCollection
维护一个
IList
,它被分配了一个
列表的实例。
ObservableCollection.Clear
方法最终调用内部列表和该
列表上的
Clear
。Clear
方法然后使用
Array.Clear
来清除项目