WPF Listview Columnheader Нажмите событие - PullRequest
0 голосов
/ 15 сентября 2010

У меня есть ListView (GridView) в WPF, и я пытаюсь реализовать сортировку по http://msdn.microsoft.com/en-us/library/ms745786.aspx. В моем случае шаблон ячейки для одного из столбцов содержит Expander.Теперь, когда я щелкаю заголовок экспандера, происходит событие GridViewColumnHeader.Click.Как я могу предотвратить это?

1 Ответ

1 голос
/ 15 сентября 2010

Если ничего не должно произойти, отмените его с помощью e.Cancel = true. У меня есть нечто подобное в моем проекте, где я не хочу, чтобы пользователь переупорядочивал столбцы:

private void DataGrid_ColumnReordering(object sender, Microsoft.Windows.Controls.DataGridColumnReorderingEventArgs e)
{
    e.Cancel = true;
}

Тогда в XAML я имею:

<toolkit:DataGrid ItemsSource="{Binding JournalItems}" 
                  AutoGenerateColumns="True"
                  ColumnReordering="DataGrid_ColumnReordering">

Это сетка данных WPF Toolkit, но e.Cancel = true должен работать для любого элемента управления.

Если при щелчке пользователя по этому заголовку должно произойти что-то другое, вы также можете обработать его этим способом.

Вы можете проверить отправителя, чтобы увидеть, где пользователь щелкнул (в расширителе или в заголовке gridview), если вам нужно обрабатывать эти случаи по-разному. Если отправителем является расширитель, отмените его. Если отправителем является заголовок таблицы, пусть сортировка продолжается.

...