1

我正在开发一个DataGridView绑定到实体列表的应用程序。最后一列是DataGridViewCheckBoxColumn在 0 和 1 之间切换以设置Status实体的属性。我处理 的CellContentClick事件DataGridView,如果单元格是DataGridViewCheckBoxCell,我调用DataGridView.CommitEdit(DataGridViewErrorContexts.CurrentCellChanged)

我也在处理该CellValueChanged事件,因此当状态发生变化时,我可以根据单元格的值将CreatedDate属性设置为DateTime.Now或 的一个实例。Nullable<DateTime>

像普通人一样单击复选框时,一切正常,并且符合预期。对应DataGridViewCellCreatedDate即时更新。

但是,如果我连续两次快速单击复选框,CreatedDate网格中的 最终会为这两次单击中的第一次显示适当的值。我也不是在谈论双击速度——它的速度要适中得多。

现在,好消息是实际的基础数据正在被适当地更改。所以我知道适当的事件正在触发并且处理程序正在被击中。但无论出于何种原因,DataGridView都没有得到更新。我尝试手动调用Refresh(),单击后禁用整个表单并在保存实体后重新启用它(在这种情况下,第二次单击仍然注册,因为禁用和重新启用之间的时间很短),没有任何效果.

想法?

4

0 回答 0