Где найти событие TreeListViews ColumnHeaderClick? - PullRequest
0 голосов
/ 24 марта 2011

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

Я использую пользовательский элемент управления Ricciolos TreeListView: http://windowsclient.net/blogs/ricciolocristian/archive/2008/03/22/a-complete-wpf-treelistview-control.aspx

Теперь моя проблема заключается в том, что мне нужно перехватить событие ColumnHeaderClick, чтобы применить логику сортировки.Я уже брал интервью у тетушки Google, но безрезультатно.Может быть, здесь Сомене знает, где найти такое событие и как определить, по какому заголовку столбца была нажата кнопка.

Спасибо

1 Ответ

0 голосов
/ 24 марта 2011

Вам необходимо добавить обработчик для события GridViewColumnHeader.Click. Эта запись описывает, как это сделать для ListView, который использует те же базовые элементы управления. Этот код был адаптирован по этой ссылке:

myTreeListView.AddHandler(GridViewColumnHeader.ClickEvent, new RoutedEventHandler(this.OnGridViewColumnHeaderClicked));

private void OnGridViewColumnHeaderClicked(object sender, RoutedEventArgs e) {
    MessageBox.Show("testing");
}

Кроме того, вы можете подключить обработчик через XAML, например:

<my:TreeListView GridViewColumnHeader.Click="OnGridViewColumnHeaderClicked" />

e.OriginalSource будет включать GridViewColumnHeader, а e.Source / sender будет TreeListView.

...