私は現在、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 クラスからデータグリッドでイベントを安全にトリガーできますか?
事前にどうもありがとうございました!