Постоянная сортировка из DataGrid в коллекцию ItemsSource - PullRequest
1 голос
/ 17 января 2012

У меня есть DataGrid, и я пытаюсь сделать сортировку самым простым способом: нажимая на заголовок каждого столбца.

Это прекрасно работает в представлении ( в контексте MVVM ), но я также хочу отсортировать базовую коллекцию ViewModel (ObservableCollection).Любые предложения о том, как реализовать исходную коллекцию?

1 Ответ

1 голос
/ 19 января 2012

Свяжите сетку с ListCollectionView, инициализированным с ObservableCollection. Сетка будет использовать ваш предварительно созданный ICollectionView вместо создания своего собственного ICollectionView на основе вашего ObservableCollection<T> (что является поведением по умолчанию) и применяет любые функции / предикаты сортировки к вашему экземпляру.

В качестве дополнительного преимущества сортировка / фильтрация этого ListCollectionView будет отражаться в вашей сетке всякий раз, когда вы вызываете MyListCollectionView.Refresh () из вашей ViewModel.

Как только вы это сделаете, перебор коллекции Items вашего ListCollectionView будет точно отражать текущее состояние фильтра / сортировки вашей сетки.

...