带有自定义单元格编辑器的 DataGridView 不会在第一次尝试时推送用户值

问题描述

我已经为 DataGridView 为可编辑的一列实现了一个自定义单元格编辑器。但是,我注意到第一次编辑任何单元格时,该值不会复制到数据绑定项。所以看起来什么都没发生。但是,在最初的尝试写入之后一切正常。

这是一个例子。所以我刚刚运行了程序并在问题列中放置了一个“2”。

enter image description here

但是当我离开单元格时,值丢失了:

enter image description here

但是如果我返回并写回数据,它会坚持:

enter image description here

第一次编辑哪个单元格无关紧要,第一次对任何单元格都不起作用。第一次之后,任何单元格都可以工作。

但是,如果我在读取数据时遇到的自定义编辑器中设置中断,例如在 GetEditingControlFormattedValue() 中,那么它就可以工作。

看到这里,我尝试测试了程序的完全编译版本,但问题仍然存在。

我在自定义编辑器的 OnLeave 事件上调用 DataGridView.NotifyCurrentCellDirty():

    protected override void OnLeave(EventArgs e)
    {
        base.OnLeave(e);

        this.EditingControlDataGridView.NotifyCurrentCellDirty(this.EditingControlValueChanged);
    }

也许这就是问题所在,但我不知道还能在哪里调用 NotifyCurrentCellDirty()。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)