Программное удаление стрелки сортировки из DataGrid в WPF

В моем приложении WPF у меня есть DataGrid с некоторыми столбцами, которые отображают мои сортируемые данные. Пользователь может сортировать и подсортировать любой столбец, который он хочет.

Я добавил кнопку, которая должна очищать сортировку и возвращать DataGrid в несортированное состояние, используя шаблон MVVM (это означает, что кнопка привязана к RelayCommand в ViewModel, которая очищает источник данных DataGrid SortDescriptions).

Вот как код выглядит сейчас:

ViewModelLocator.MyViewModel.GroupedItems.SortDescriptions.Clear();

DataSource DataGrid является объектом GroupedItems (типа ListCollectionView). Когда я нажимаю кнопку, я вижу, что DataGrid возвращается в исходное, несортированное состояние, однако стрелки сортировки в заголовках столбцов остаются, как будто DataGrid все еще отсортирован. Как я могу программно удалить эти стрелки?


person Jonathan Perry    schedule 19.05.2013    source источник


Ответы (1)


Чтобы удалить стрелки в DataGrid, попробуйте:

foreach (var column in dt.Columns)
{
    column.SortDirection = null;
}

Где dt это DataGrid.

person Rafal    schedule 19.05.2013
comment
Спасибо! Есть ли способ удалить их, не зная моего элемента управления DataGrid? - person Jonathan Perry; 19.05.2013
comment
К сожалению, я не встречал ничего подобного. Сомневаюсь, что это возможно :( - person Rafal; 19.05.2013
comment
Вы имеете в виду все элементы управления сеткой данных в вашем приложении? Если это так, вы можете перебирать типы элементов управления, и если тип — это datagrid, вы можете установить для вышеуказанного свойства значение null ! - person KbManu; 19.05.2013
comment
Я думаю, что нет способа сделать это программно, что странно. Спасибо за ответы народ - person Jonathan Perry; 19.05.2013