何时通常需要CollectionView.Refresh()?

时间:2012-07-05 23:31:02

标签: c# wpf mvvm

我对使用WPF并不熟悉,每当ListCollection视图模型中的一个对象发生更改时,我正在处理的应用程序都有ListCollectionView.Refresh(),这使得应用程序效率极低({{1绑定到列表集合视图模型)。删除ListCollectionView后,应用程序运行更顺畅,并且在ListCollection视图模型中发生更改时仍会更新。在环顾四周之后,似乎只要对Refresh()进行过滤或重新排序,就会隐式调用CollectionView。那么什么时候需要Refresh()并重新创建Refresh()

2 个答案:

答案 0 :(得分:2)

如果我理解正确,你有一个绑定到ListCollectionViewModel(你自己的类)的ListCollectionView。只要ListCollectionViewModel正确实现INotifyCollectionChanged(例如,它继承自ObservableCollection< T>),并且集合中的项目正确实现INotifyPropertyChange,则无需调用Refresh()。

答案 1 :(得分:0)

CollectionView不处理多个项目正在发生变化的CollectionChanged事件(发生异常);可以使用Refresh()代替,这就是您使用过滤器和排序查看调用的原因。