【发布时间】:2010-08-12 15:57:14
【问题描述】:
为 DataGridView 实现验证逻辑代码和条件格式代码的最佳位置是什么?
在我读过的有关此控件的许多书籍和文章中,似乎建议为此处理的适当事件是 CellValidating 事件。 嗯,这个名字也暗示了这一点。
但是,根据我的口味,此事件触发的频率有点高,我不确定它是否需要。 例如,每次用户切换到另一行时都会触发此事件。
另一方面,CellValueChanged 事件似乎仅在单元格的值更改时触发,这意味着验证代码仅在值更改时运行,而不是每次用户更改单元格时运行。
现在,由于很多书籍都使用 CellValidating 事件,我想知道使用 CellValueChanged 是否没有任何问题(例如显示中)?
我知道在使用简单的验证和条件突出显示规则时对性能的影响应该是无关紧要的,但如果可以避免的话,我更希望它不要在每次用户移动到另一个单元格时运行无用的代码。
谢谢,
【问题讨论】:
-
取决于您遵循的设计模式(如果有)。从技术上讲,您应该将业务逻辑从 UI 层中移除,并使用某种 ValidationObject 来验证表示层中的数据,然后将结果发送回您的视图。
-
是的,如果仅用于验证,我同意这一点。但是,对于条件格式代码,我看不出有太多其他方法可以保留在 DataGridView 的相关代码中(或在派生自 DataGridView 的类中对其进行抽象)。
标签: c# .net winforms datagridview