0

私は現在、WPF と、WindowsForms スタイルの DataGrid を含む WPF ツールキットをいじっています。

カスタム オブジェクトのリストを ItemsSource としてグリッドにバインドしました。これらのオブジェクトには、データグリッドを使用して編集可能な 2 つのブール プロパティが含まれています。組み込みのデータ バインディング モデルを使用すると、リストに同期して戻すことができますが、オブジェクトを XML にシリアル化するために CheckBox 値の 1 つが変更された場合は、別のメソッドを呼び出す必要があります。残念ながら、キャッシュプロバイダーを認識していないため、データクラス自体でこのキャッシュを行うことはできません。

したがって、チェックボックスの値が変更された直後に発生する DataGrid のイベントが必要です。

GenerateEditingElement(DataGridCell cell, object dataItem)メソッドとcheckbox_(Un-)Checkedハンドラーをオーバーライドする元のDataGridCheckBoxColumnからAutoCommitCheckBoxColumnクラスを既に継承しています。

明らかに、ここからキャッシング メソッドを呼び出すことはできませんし、したくもありません。DataGrid が存在する Window クラスで行う必要があります。

したがって、これに適切なイベントが見つかりません。MouseButton ..イベントは、セルの内側のチェックボックスではなく、外側のセルスペースがクリックされたときにのみ発生します。CellEditEnding は機能しますが、チェックボックスをオン (オフ) にした後に別のセルを選択した場合にのみ発生します。SourceUpdated はまったく起動しません。

ここで適切なイベントを手伝ってくれる人はいますか? または、AutoCommitCheckBoxColumn クラスからデータグリッドでイベントを安全にトリガーできますか?

事前にどうもありがとうございました!

4

1 に答える 1

0

WPFデータトリガーの使用を検討しましたか?

詳細については、こちらを参照してください: http: //en.csharp-online.net/WPF_Styles_and_Control_Templates —Data_Triggers

于 2010-01-19T18:10:53.837 に答える