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