在WPF应用程序我有绑定到我的视图模型一个ObservableCollection一个ListView。清除一个ObservableCollection
在我需要删除并重新加载集合中的所有项目的应用程序的运行。我永远不需要添加或删除单个项目。
这个提示问题一个ObservableCollection是否真有必要,以及是否我可以ListView控件只是绑定到IEnumerable和调用OnPropertyChanged收集更换时?
由于的ObservableCollection不具有的AddRange方法,无需更换集合将单独添加每个项目重装的唯一途径。自从为每个添加的项目引发了CollectionChanged后,这可能会有什么重大的性能影响?
最后,由于我使用ICollectionView来同步当前选择的项目,如果我做替换集合,我需要再次调用CollectionViewSource.GetDefaultView吗?我假设我可以重用现有的CurrentChanged处理程序。
感谢 本
我以前测试过。 ObservableCollection比带通知的List更快。 – vorrtex 2011-01-05 23:14:02
@vorrtex - 任何统计数据支持?这是否适用于我正在考虑更换整个系列的情况? – 2011-01-06 09:12:09
只需使用班级秒表自己尝试一下。性能问题仅在显示项目时存在,并且由于UI虚拟化,许多项目不会改变任何内容。 – vorrtex 2011-01-06 20:55:39