2010-09-15 3 views
0

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

ответ

1

Если ничего не должно произойти, отмените его с помощью 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 datagrid, но e.Cancel = true должен работать для любого элемента управления.

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

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

Смежные вопросы