持续从DataGrid到ItemsSource集合的排序

时间:2012-01-17 14:35:29

标签: wpf sorting mvvm datagrid wpfdatagrid

我有一个DataGrid,我正在尝试以最简单的方式进行排序:点击每列的标题。

这在View(MVVM上下文中的 )上运行得很好,但我也希望对基础ViewModel集合(ObservableCollection)进行排序。有关如何实现源集合的任何建议吗?

1 个答案:

答案 0 :(得分:1)

将网格绑定到ListCollectionView,并使用ObservableCollection进行初始化。网格将使用您预先创建的ICollectionView,而不是根据您的ICollectionView(这是默认行为)创建自己的ObservableCollection<T>,并将任何排序功能/谓词应用于您的实例。

作为一个额外的好处,每当您从ViewModel调用MyListCollectionView.Refresh()时,ListCollectionView的排序/过滤都将反映在您的网格中。

完成此操作后,遍历ListCollectionView的Items集合将准确反映网格的当前过滤器/排序状态。