我有一个DataGrid
和一个DataGridCheckBoxColumn
和其他人。被DataGrid ItemSource
映射到ObservableCollection
包含 的行的a Tasks
。Task 类包括属性,例如"ID", "IsScheduled", "IsScheduled_Date", "IsScheduled_EditorID", Etc.
我试图弄清楚如何使一个DataGridCheckBoxColumn
字段 ( IsScheduled
) 还保存日期 ( IsScheduled_Date
) 以及在选中时谁进行了更改 ( IsScheduled_EditorID
)。
(1) 我曾尝试使用多重绑定来保存额外的数据,但到目前为止我的努力都失败了。您可以在此处查看解决类似问题的进度。
(2) 我曾尝试让DataGrid
CellEditEnding
事件保存额外数据,但它最终在提交 IsScheduled 数据之前提交了额外数据,并且每当取消行和/或单元格编辑时都会造成麻烦。
(3) 我尝试在我的 Task 类中监听属性更改事件并在那里分配额外的更改。这似乎工作正常,直到我意识到当数据首次加载时它会导致覆盖任何早期更改的更改事件。
添加信息
该类Task
是Entity Framework Class
从数据库生成的。我正在收听该OnIscheduledChanged
事件并进行必要的更改,因为当我在生成的类中进行更改时,它总是被覆盖。
更多信息
Task 类似乎有些混乱。正如我所说,它是由实体框架生成的,断点显示加载时调用的设置器......覆盖更改。更不用说每次代码重新生成时都会覆盖任何自定义代码。
/// <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();
有任何想法吗?