Я щелкаю заголовок сетки, чтобы отсортировать столбец, а затем нажимаю кнопку «Сброс», чтобы очистить описания сортировки в представлении коллекции. Но значок стрелки сортировки все еще остается в заголовке. Как это убрать?
Как удалить стрелку сортировки сетки wpf после очистки описаний сортировки
Ответы (2)
простое решение, которое я могу придумать, это
foreach (DataGridColumn column in DataGridView.Columns)
{
column.SortDirection = null;
}
person
krishnaaditya
schedule
30.03.2011
Я столкнулся с этим вопросом, пытаясь понять, как полностью очистить сортировку от сетки. Спасибо [krishnaaditya] за ответ, как убрать стрелку сортировки с заголовка.
using System.Windows.Data;
using System.ComponentModel;
ICollectionView view = CollectionViewSource.GetDefaultView(resultsGrid.ItemsSource);
if (view != null && view.SortDescriptions.Count > 0)
{
view.SortDescriptions.Clear();
foreach (DataGridColumn column in resultsGrid.Columns)
{
column.SortDirection = null;
}
}
person
Andrea
schedule
02.03.2012
Это полное решение. Первый ответ убрал только сортировку, но не стрелку из заголовка.
- person Alexandru Dicu; 22.10.2013
К сожалению, ни одно из вышеперечисленных решений не работает, если вы сортируете столбец, который использует преобразователь для отображения хороших данных (например, в одном столбце у вас есть Enum, а вы используете преобразователь для отображения чего-то еще). В этой ситуации SortDescriptions.Count всегда остается равным нулю. Когда вы пытаетесь сбросить сортировку, ничего не происходит.
- person Alexandru Dicu; 21.08.2015
Это потому, что вы здесь ошибаетесь с источником, а не с фактическим отображаемым значением. Попробуйте DataGrid.Items.SortDescriptions. Вот где реальные значения. Оберните его в использование с помощью DeferRefresh для лучшей производительности.
- person Mark A. Donohoe; 08.12.2015