我有一个DataGrid
,我正在尝试以最简单的方式进行排序:点击每列的标题。
这在View(MVVM上下文中的 )上运行得很好,但我也希望对基础ViewModel集合(ObservableCollection
)进行排序。有关如何实现源集合的任何建议吗?
答案 0 :(得分:1)
将网格绑定到ListCollectionView
,并使用ObservableCollection
进行初始化。网格将使用您预先创建的ICollectionView
,而不是根据您的ICollectionView
(这是默认行为)创建自己的ObservableCollection<T>
,并将任何排序功能/谓词应用于您的实例。
作为一个额外的好处,每当您从ViewModel调用MyListCollectionView.Refresh()时,ListCollectionView
的排序/过滤都将反映在您的网格中。
完成此操作后,遍历ListCollectionView的Items集合将准确反映网格的当前过滤器/排序状态。