Как получить столбцы DataGrid для отображения наведения мыши и направления сортировки, когда CanUserSortColumns = "False"? - PullRequest
1 голос
/ 06 мая 2011

Я хотел бы предоставить собственную реализацию поведения сортировки для WPF DataGrid, так как я использую модель данных с постраничной загрузкой.Мое поведение при разбивке на страницы работает хорошо, однако поведение сортировки по умолчанию для CanUserSortColumns="True" вызывает сортировку текущей страницы, однако я хочу захватить это и отсортировать сам.

Я подумал, что смогу обеспечить сортировкуповедение при прослушивании событий щелчков на заголовках столбцов и соответствующей сортировке, что работает, однако, когда CanUserSortColumns="False" заголовки столбцов больше не реагируют на взаимодействие с мышью и не показывают индикатор направления сортировки.

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

Ответы [ 2 ]

1 голос
/ 08 мая 2011

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

Но если ваша цель - реализовать пользовательскую сортировку, не могли бы вы вместо этого обработать событие Sorting? Вы даже получаете ссылку на Column, которая инициировала сортировку, и получаете значение SortDirection до сортировки (null -> Ascending -> Descending ->). Затем вы можете отсортировать ваш источник по мере необходимости.

0 голосов
/ 06 мая 2011

Можете ли вы оставить CanUserSortColumns равным true, а затем обработать PreviewLeftMouseButton, выполнить пользовательские операции и установить обработку события, чтобы оно никогда не попадало в логику сортировки по умолчанию?

...