Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
 
Nukutu
176 / 102 / 12
Регистрация: 22.03.2010
Сообщений: 456
#1

DataGrid восстановить сортировку колонки по умолчанию - C# WPF/.NET 4.x

24.03.2012, 12:07. Просмотров 1031. Ответов 3
Метки нет (Все метки)

В DataGrid, нажимая на заголовок колонки, колонка сортируется в двух направлениях (Column.SortDirection): Ascending и Descending.
Как восстановить сортировку колонки по умолчанию (т.е. без сортировки), еще раз кликнув на заголовок колонки?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2012, 12:07
Я подобрал для вас темы с готовыми решениями и ответами на вопрос .NET 4.x DataGrid восстановить сортировку колонки по умолчанию (C# WPF):

Прочитать значение колонки ID из DataGrid
Знаю что про это тем было не мало, но можно ответить не ссылками, а тупо кодом,...

Как в datagrid добавлять и удалять колонки
Как можно сделать динамическое добавление и удаление колонок в datagrid? В...

Редактирование только одной колонки в datagrid
Добрый день. Появился вопрос. у меня есть таблица, допустим в ней 3 поля. как...

DataGrid WPF Событие нажатия на заголовок колонки
Доброго времени суток! Возникла необходимость выполнения метода при нажатии на...

Не обнвляется DataGrid при удалении колонки из DataTable
Здравствуйте. Во время работы прилжения необходимо удалить выбранные колонки...

Изменить способ редактирования колонки в wpf DataGrid
Как сделать чтобы содержимое колонки wpf DataGrid отображалось в TextBox, а...

3
Nukutu
176 / 102 / 12
Регистрация: 22.03.2010
Сообщений: 456
25.03.2012, 21:46  [ТС] #2
Никто не сталкивался с такой проблемой?
0
Vorona
Peace 2 all shining faces
671 / 533 / 84
Регистрация: 05.03.2010
Сообщений: 1,283
25.03.2012, 22:15 #3
ну если логически подумать, то нигде не хранится исходный порядок элементов, разве что он зависит от времени, когда они были добавлены, т.е. это та же сортировка только по времени добавления либо просто хранить индексы для каждого элемента или ряда, т.е., если не ошибаюсь, легче это организовать через Dictionary, либо поискать или где-то фиксируется время добавления элемента, что мне кажется маловероятно, хотя..
0
Nukutu
176 / 102 / 12
Регистрация: 22.03.2010
Сообщений: 456
26.03.2012, 01:09  [ТС] #4
Проблема решена. Кому интересно, вот код.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
private void DataGrid_Sorting(object sender, DataGridSortingEventArgs e)
        {
            DataGrid dataGrid = sender as DataGrid;
            string sortPropertyName = e.Column.SortMemberPath;
 
            if (!string.IsNullOrEmpty(sortPropertyName))
            {
                // sorting is cleared when the previous state is Descending
                if (e.Column.SortDirection.HasValue && e.Column.SortDirection.Value == ListSortDirection.Descending)
                {
                    SortDescription sd = new SortDescription(sortPropertyName, ListSortDirection.Descending);
                    int index = dataGrid.Items.SortDescriptions.IndexOf(sd); 
 
                    if (index != -1)
                    {
                        e.Column.SortDirection = null;                        
 
                        if ((Keyboard.Modifiers & ModifierKeys.Shift) != ModifierKeys.Shift)
                        {
                            // clear any other sort descriptions for the multisorting case
                            dataGrid.Items.SortDescriptions.Clear();
                        }
                        else
                        {
                            // remove the sort description
                            dataGrid.Items.SortDescriptions.RemoveAt(index);
                        }
                        dataGrid.Items.Refresh();
                        // stop the default sort
                        e.Handled = true;
 
                    }
                }
            }
        }
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.03.2012, 01:09
Привет! Вот еще темы с решениями:

mvvm : как в модель представления передать имя колонки DataGrid?
Уважаемые Гуру! Есть userControl на котором DataGrid. В модели представления...

Как в Combobox datagrid по умолчанию занести список элементов
В datagrid есть колонка с типом Combobox. Пользователь будет добавлять объекты...

DataGrid: установить фокус на строку DataGrid, а не на сам DataGrid
Добрый день! Есть следующий код: public partial class MainWindow : Window...

ListView Колонки и занисение данных в колонки
Здравствуйте... Я установил VIEW на Ditailes.. Теперь есть проблема - Я могу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru