我目前正在使用 WPF 和包含 WindowsForms 样式 DataGrid 的 WPF 工具包。
我已将自定义对象列表作为 ItemsSource 绑定到网格。这些对象包含两个可使用数据网格编辑的布尔属性。使用内置数据绑定模型同步回我的列表可以正常工作,但是如果其中一个 CheckBox 值更改为将对象序列化回 XML 中,我必须调用另一种方法。不幸的是,我不能在我的数据类本身中进行这种缓存,因为它不知道它的缓存提供者。
因此,我需要 DataGrid 上的一个事件,该事件在复选框值更改后立即触发。
我已经从原始 DataGridCheckBoxColumn 继承了一个 AutoCommitCheckBoxColumn 类,它覆盖了该方法GenerateEditingElement(DataGridCell cell, object dataItem)
以及 checkbox_(Un-)Checked 处理程序。
显然我不能也不想从这里调用缓存方法——它需要在 DataGrid 所在的 Window 类中完成。
所以 - 我只是找不到合适的事件:MouseButton.. 事件仅在外部单元格空间而不是单元格中的内部复选框被单击时触发。CellEditEnding 可以工作,但只有在(取消)选中复选框后选择另一个单元格时才会触发。SourceUpdated 根本不会触发。
任何人都可以在这里帮我举办一个合适的活动吗?或者我可以以某种方式从我的 AutoCommitCheckBoxColumn 类安全地触发数据网格上的事件吗?
非常感谢您!