如何在 InvalidRowException 事件处理程序中获取错误列?

How to get column in error within InvalidRowException event handler?

我有一个带有 Devexpress GridView 的 winform。

我正在处理事件:InvalidRowException

当必填列中缺少数据时(或数据通常不一致),我会尝试显示自定义消息。

问题是我找不到获取有错误的列的方法。

在对象 E as InvalidRowExceptionEventArgs 中,没有关于该列的信息。我也试过:gridview.getcolumnerror(gridview.columns(1)) 但它 returns 什么都没有。

谁能知道在处理事件 InvalidRowException 时如何获取错误的列?

谢谢

捕获该异常有点太晚了,因此您无法处理网格中的任何内容。使用事件 ValidateRow 来防止数据输入不足。两者都在 this article.

中进行了解释

还有其他方法,例如在离开单元格编辑器时直接验证(而不仅仅是在离开行时)。参见 this tutorial on Data Input and Validation

InvalidRowException 确实为您提供了具有 RowRowHandle 属性的行。在这里,您可以逐行调查和处理具体的错误。

要回答关于 "which column has the error" 的问题,请查看 InvalidRowExceptionArgs.Exception 属性。这应该清楚地说明为什么它认为它是 "invalid row".

可以找到有关此内容的文档和示例 here

如果您可以 post 完整、小型且可重现的代码以及您打算实现的行为,我可能会编写代码来解决它。