WPF DataGrid предотвращает автоматическое изменение порядка сортировки - PullRequest
0 голосов
/ 15 мая 2018

У меня есть сетка данных, связанная со списком элементов. Я хотел бы иметь возможность сортировать сетку, щелкая заголовки столбцов. После того, как сетка отсортирована, я бы хотел еще больше упорядочить ее путем перетаскивания. Моя проблема заключается в том, что всякий раз, когда есть сортировка, я не могу перетаскивать элементы для переупорядочения (список автоматически пересортируется после удаления). Также, как только элемент будет отредактирован, сетка будет пересортирована. Я пытался перехватить это в событии сортировки, но событие не запускается, когда происходит «автоматическая сортировка», только когда фактическая сортировка применяется к представлению.

Я попытался скопировать отсортированный вид в новый список, а затем установить источник данных в отсортированный список. Проблема этого подхода в том, что направление сортировки не переключается.

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

1 Ответ

0 голосов
/ 15 мая 2018

Вам потребуется реализовать все, что связано с сортировкой.

  1. Вам нужна команда для заголовков сетки данных, связанных с вашим методом сортировки.и текст заголовков, привязанный к направлению сортировки текущего столбца

  2. Вам нужна отсортированная коллекция, которая привязана к элементам источника сетки данных

  3. Вам нужно перечисление, содержащее все кликабельные столбцы, чтобы при щелчке пользователя по столбцу метод сортировки назывался

  4. Вам необходимо реализовать метод сортировки со следующими параметрами: bool sortDirection иSortByColumnEnum column.который обновляет отсортированную коллекцию, и, следовательно, изменяется сетка данных.

После этого вы можете изменить порядок элементов, изменив их индекс внутри отсортированной коллекции.

...