我对使用WPF并不熟悉,每当ListCollection视图模型中的一个对象发生更改时,我正在处理的应用程序都有ListCollectionView.Refresh()
,这使得应用程序效率极低({{1绑定到列表集合视图模型)。删除ListCollectionView
后,应用程序运行更顺畅,并且在ListCollection视图模型中发生更改时仍会更新。在环顾四周之后,似乎只要对Refresh()
进行过滤或重新排序,就会隐式调用CollectionView
。那么什么时候需要Refresh()
并重新创建Refresh()
?
答案 0 :(得分:2)
如果我理解正确,你有一个绑定到ListCollectionViewModel(你自己的类)的ListCollectionView
。只要ListCollectionViewModel正确实现INotifyCollectionChanged
(例如,它继承自ObservableCollection< T>),并且集合中的项目正确实现INotifyPropertyChange
,则无需调用Refresh()。
答案 1 :(得分:0)
CollectionView不处理多个项目正在发生变化的CollectionChanged事件(发生异常);可以使用Refresh()
代替,这就是您使用过滤器和排序查看调用的原因。