Сортировка DataTable с WPF DataGrid? - PullRequest
3 голосов
/ 26 апреля 2011

Хорошо, это сводит меня с ума.Я потратил часы, пытаясь понять, каким должно быть простое решение, но мне не повезло.

У меня есть DataGrid [WPF Toolkit] на странице XAML, в которой DataTable является ее ItemsSource.У меня также есть кнопка на моей странице, которая получает DataGrid's SelectedIndex (выбранная строка) и использует ее как переменную в функции, которая считывает связанную строку DataTable по этому индексу и возвращает значение.Все работает нормально, пока я не нажму на заголовок столбца, чтобы отсортировать его.Он сортирует DataGrid, но не сортирует DataTable вместе с ним, поэтому мой SelectedIndex изменился, но индекс DataTable не изменился, поэтому он возвращает неправильное значение.

Я искал события щелчка заголовка столбца -неудачно;Я попытался получить заголовок столбца, по которому сортируется сетка - nada;Я пытался использовать EventSetter «Click» в шаблоне DataGridTextColumn - не поддерживается.

Я полностью в растерянности.Если предполагается, что WPF является улучшением по сравнению с Windows Forms, почему некоторые простые функции были удалены?(Также глупо, что вам нужно связывать данные только для добавления строк, просто говоря.) Я могу использовать DataGrid для Windows Forms, и у меня не возникнет никаких проблем, но тогда я не смогу его стилизовать.

Может бытьЯ не выполняю проверку должным образом или что-то ...?Ниже мой код поиска / вывода.У кого-нибудь есть идеи ???Ваша помощь будет принята с благодарностью!

DataRow selectedRow = my_data.Tables[0].Rows[my_grid.SelectedIndex];
MessageBox.Show(selectedRow["ItemName"]);

1 Ответ

8 голосов
/ 26 апреля 2011

Сортировка применяется к DefaultView объекта данных. Так что она не будет применена к Datatable напрямую. Для доступа к отсортированной таблице используйте

DataTable.DefaultView.ToTable()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...