私はと他DataGrid
の人と一緒にDataGridCheckBoxColumn
います。は、の行を含むにDataGrid ItemSource
マップされます。Taskクラスには 、1つのフィールド()を作成する方法や日付()を保存する方法、チェックしたときに誰が変更()を行ったかなどのプロパティが含まれています。ObservableCollection
Tasks
"ID", "IsScheduled", "IsScheduled_Date", "IsScheduled_EditorID", Etc.
DataGridCheckBoxColumn
IsScheduled
IsScheduled_Date
IsScheduled_EditorID
(1)マルチバインディングを使用して余分なデータを保存するように試みましたが、これまでのところ失敗しています。ここで、同様の問題の解決に関する私の進捗状況を確認できます。
(2)DataGrid
CellEditEnding
イベントに追加データを保存させようとしましたが、IsScheduledデータがコミットされる前に追加データをコミットすることになり、行やセルの編集がキャンセルされるたびに問題が発生しました。
(3)Taskクラスでプロパティ変更イベントをリッスンし、そこで追加の変更を割り当ててみました。これは、データが最初にロードされたときに、以前の変更を上書きする変更イベントが発生することに気付くまでは、正常に機能しているように見えました。
追加情報
Task
クラスは、Entity Framework Class
DBから生成されたものです。生成されたクラスでイベントを実行すると、常に上書きされるため、イベントを聞いてOnIscheduledChanged
必要な変更を加えていました。
より詳しい情報
Taskクラスについては混乱があるようです。私が述べたように、それはEntity Frameworkによって生成され、ブレークポイントはロード時に呼び出されているセッターを示します...変更を上書きします。コードが再生成されるたびに上書きされるカスタムコードは言うまでもありません。
/// <summary> /// No Metadata Documentation available. /// </summary> [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)] [DataMemberAttribute()] public global::System.Boolean IsScheduled { get { return _IsScheduled; } set { OnIsScheduledChanging(value); ReportPropertyChanging("IsScheduled"); _IsScheduled = StructuralObject.SetValidValue(value); ReportPropertyChanged("IsScheduled"); OnIsScheduledChanged(); } } private global::System.Boolean _IsScheduled; partial void OnIsScheduledChanging(global::System.Boolean value); partial void OnIsScheduledChanged();
何か案は?