Если ничего не должно произойти, отмените его с помощью 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), если вам нужно обрабатывать эти случаи по-разному. Если отправителем является расширитель, отмените его. Если отправителем является заголовок таблицы, пусть сортировка продолжается.