Форум программистов, компьютерный форум, киберфорум
Наши страницы

C#: WPF, UWP и Silverlight

Войти
Регистрация
Восстановить пароль
 
Nukutu
176 / 102 / 2
Регистрация: 22.03.2010
Сообщений: 456
#1

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

24.03.2012, 12:07. Просмотров 1006. Ответов 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 - C# WPF
Знаю что про это тем было не мало, но можно ответить не ссылками, а тупо кодом, а то я как бревно тупой и не смогу разобраться! Есть...

Как в datagrid добавлять и удалять колонки - C# WPF
Как можно сделать динамическое добавление и удаление колонок в datagrid? В devexpress есть реализация, добавления, удаления колонок, а в...

Редактирование только одной колонки в datagrid - C# WPF
Добрый день. Появился вопрос. у меня есть таблица, допустим в ней 3 поля. как сделать так что бы пользователь мог редактировать только 1...

.NET 4.x Не обнвляется DataGrid при удалении колонки из DataTable - C# WPF
Здравствуйте. Во время работы прилжения необходимо удалить выбранные колонки из DataTable: DataTable TmpTable =...

Изменить способ редактирования колонки в wpf DataGrid - C# WPF
Как сделать чтобы содержимое колонки wpf DataGrid отображалось в TextBox, а редактировалось в ComboBox? Примечание!!! DataGrid...

mvvm : как в модель представления передать имя колонки DataGrid? - C# WPF
Уважаемые Гуру! Есть userControl на котором DataGrid. В модели представления делаю фильтр данных. Команда фильтрации вызывается из...

3
Nukutu
176 / 102 / 2
Регистрация: 22.03.2010
Сообщений: 456
25.03.2012, 21:46  [ТС] #2
Никто не сталкивался с такой проблемой?
0
Vorona
Peace 2 all shining faces
671 / 533 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
25.03.2012, 22:15 #3
ну если логически подумать, то нигде не хранится исходный порядок элементов, разве что он зависит от времени, когда они были добавлены, т.е. это та же сортировка только по времени добавления либо просто хранить индексы для каждого элемента или ряда, т.е., если не ошибаюсь, легче это организовать через Dictionary, либо поискать или где-то фиксируется время добавления элемента, что мне кажется маловероятно, хотя..
0
Nukutu
176 / 102 / 2
Регистрация: 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
26.03.2012, 01:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.03.2012, 01:09
Привет! Вот еще темы с ответами:

Как в Combobox datagrid по умолчанию занести список элементов - C# WPF
В datagrid есть колонка с типом Combobox. Пользователь будет добавлять объекты в коллекцию через датагрид. При загрузке формы в датагриде...

DataGrid: установить фокус на строку DataGrid, а не на сам DataGrid - C# WPF
Добрый день! Есть следующий код: public partial class MainWindow : Window { DataTable dt = new DataTable(); ...

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

Как зеркально отобразить dataGrid одного окна в dataGrid в другом окне? - C# WPF
Здравствуйте. Столкнулся с проблемой. Не знаю, как отобразить зеркально dataGrid одного окна, в dataGrid другого окна? Возможно ли...


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

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

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