问题描述
我已经为 DataGridView 为可编辑的一列实现了一个自定义单元格编辑器。但是,我注意到第一次编辑任何单元格时,该值不会复制到数据绑定项。所以看起来什么都没发生。但是,在最初的尝试写入之后一切正常。
这是一个例子。所以我刚刚运行了程序并在问题列中放置了一个“2”。
但是当我离开单元格时,值丢失了:
但是如果我返回并写回数据,它会坚持:
第一次编辑哪个单元格无关紧要,第一次对任何单元格都不起作用。第一次之后,任何单元格都可以工作。
但是,如果我在读取数据时遇到的自定义编辑器中设置中断,例如在 GetEditingControlFormattedValue() 中,那么它就可以工作。
看到这里,我尝试测试了程序的完全编译版本,但问题仍然存在。
我在自定义编辑器的 OnLeave 事件上调用 DataGridView.NotifyCurrentCellDirty():
protected override void OnLeave(EventArgs e)
{
base.OnLeave(e);
this.EditingControlDataGridView.NotifyCurrentCellDirty(this.EditingControlValueChanged);
}
也许这就是问题所在,但我不知道还能在哪里调用 NotifyCurrentCellDirty()。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)