两次快速单击复选框后,Winforms DataGridView不会更新

时间:2014-09-19 17:18:21

标签: .net winforms datagridview datagridviewcheckboxcell

我正在处理一个绑定到实体列表的DataGridView的应用程序。最后一列是DataGridViewCheckBoxColumn,可在0和1之间切换以设置实体的Status属性。我处理CellContentClick的{​​{1}}事件,如果单元格是DataGridView,我会调用DataGridViewCheckBoxCell

我还处理DataGridView.CommitEdit(DataGridViewErrorContexts.CurrentCellChanged)事件,因此当状态发生变化时,我可以将CellValueChanged属性设置为CreatedDateDateTime.Now的实例},基于单元格的值。

点击像普通人一样的复选框时,一切正常,并且符合预期。 Nullable<DateTime>的相应DataGridViewCell即时更新。

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

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

想法?

0 个答案:

没有答案