0

WPF に ListView (GridView) があり、 http://msdn.microsoft.com/en-us/library/ms745786.aspxに従って並べ替えを実装しようとしています。私の場合、列の 1 つの celltemplate に Expander が含まれています。エキスパンダー ヘッダーをクリックすると、GridViewColumnHeader.Click イベントが発生します。これを防ぐにはどうすればよいですか?

4

1 に答える 1

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 のデータグリッドですが、e.Cancel = trueどのコントロールでも機能するはずです。

ユーザーがこのヘッダーをクリックしたときに他の処理が必要な場合は、そのメソッドで処理することもできます。

これらのケースを別の方法で処理する必要がある場合は、送信者をチェックして、ユーザーがクリックした場所 (エキスパンダーまたはグリッドビュー ヘッダー) を確認できます。送信者がエキスパンダーの場合は、キャンセルします。送信者が gridview ヘッダーの場合は、並べ替えを続行します。

于 2010-09-15T11:31:50.977 に答える