Метод, который я давно использовал для сортировки в WPF, - это создание CollectionViewSource и указание SortDescription, например,
<Window.Resources>
<CollectionViewSource x:Key="testView">
<CollectionViewSource.SortDescriptions>
<cm:SortDescription PropertyName="FirstName" Direction="Descending"></cm:SortDescription>
<cm:SortDescription PropertyName="FamilyName"></cm:SortDescription>
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
. Это отлично работает для всего, что я выбрасывал, за исключениемDataGrid.Кажется, он работает нормально с первого раза, но если я изменю данные, то сетка убивает сортировку.Это даже убивает его для других элементов управления, которые используют тот же CollectionViewSource.Я создал пример проекта здесь
http://www.mikesdriveway.com/misc/GridSortIssue.zip
Чтобы проверить эту проблему, запустите проект и нажмите кнопку Обновить данные.Обратите внимание, что порядок предметов меняется.Это происходит только один раз, чтобы снова протестировать, остановить и снова запустить проект.Теперь удалите ItemsSource из DataGrid и снова запустите проект.На этот раз, когда вы нажимаете кнопку Обновить данные, ничего не происходит, это означает, что сортировка остается прежней.Каким-то образом сетка убивает сортировку в CollectionViewSource.Это ошибка?
Приветствия, Майкл