高级大宅男 发表于 2016-4-20 09:45:02

C1DataGrid的CommittingEdit事件中调用e.cancle=true又会重新触发CommittingEdit事件

如题,C1DataGrid的CommittingEdit事件中调用e.cancle=true又会重新触发CommittingEdit事件?
我想在CommittingEdit事件中验证单元格内容,如果有错就不提交,并且取消之前的编辑,值回到编辑前,单元格为获得焦点状态并全选。
然后点回车再次触发CommittingEdit事件。


该如何处理?

Alice 发表于 2016-4-20 12:08:55

首先进入编辑状态后,鼠标点击其他地方离开该单元格的编辑状态,触发CommintEdit事件,该事件里调用了e.cancel=true。我测试没有重现事件重新出发的问题。

另外C1DataGrid有Validation的功能针对校验,你可以参考随机安装示例,路径如下:
\Documents\ComponentOne Samples\WPF\C1.WPF.DataGrid\CS\DataGridSamples\DataInput\Validation

高级大宅男 发表于 2016-4-20 12:26:57

Alice 发表于 2016-4-20 12:08
首先进入编辑状态后,鼠标点击其他地方离开该单元格的编辑状态,触发CommintEdit事件,该事件里调用了e.can ...

我刚又试了一下,点击其他地方离开单元格的情况下不会,但是编辑完后按回车键就会发生我说的情况,麻烦您再看下?

Alice 发表于 2016-4-20 19:04:16

高级大宅男 发表于 2016-4-20 12:26
我刚又试了一下,点击其他地方离开单元格的情况下不会,但是编辑完后按回车键就会发生我说的情况,麻烦您 ...

按照您的描述步骤,重现了该问题。
如何解决我们检查后给您回复。

Alice 发表于 2016-4-27 14:54:00

很抱歉这个问题我还没找到合适的解决方案。

不知道您那里的进展如何?

高级大宅男 发表于 2016-4-28 15:33:47

Alice 发表于 2016-4-27 14:54
很抱歉这个问题我还没找到合适的解决方案。

不知道您那里的进展如何?

我暂且通过在PreviewKeyDown中设置Flag,然后在Committing中判断的方法勉强解决了。

Alice 发表于 2016-4-28 16:28:51

高级大宅男 发表于 2016-4-28 15:33
我暂且通过在PreviewKeyDown中设置Flag,然后在Committing中判断的方法勉强解决了。

好的,谢谢反馈。
页: [1]
查看完整版本: C1DataGrid的CommittingEdit事件中调用e.cancle=true又会重新触发CommittingEdit事件