如何实现多个对象属性更改的单一验证

本文关键字:属性 验证 单一 对象 何实现 实现 | 更新日期: 2023-09-27 18:33:48

我正在使用PropertyGrid.SelectedObjects(Winform控件(属性来显示多个对象的属性。我为每个对象的每个属性都有自定义描述符,它执行基本验证并执行业务逻辑。

我只想在所有验证完成后执行一次业务逻辑。我们怎么做?

编辑

设置值时,PropertyGrid 控件会自动使用 MergedPropertyDescriptor,该描述符在循环中调用我的自定义描述符的 SetValue 函数,从而导致多个业务逻辑调用。我想在不使用任何静态变量的情况下避免这种情况

编辑2这个问题也发布在Microsoft论坛上

如何实现多个对象属性更改的单一验证

最简单的:

myForm.submit = function() {
  if (checkValidation()) {
    // business logic;
    if (OK) return true;
  }
  return false;
};

就我个人而言,我更喜欢简单地使用 submit 方法作为包装器(内部 if 语句 [当 true 时] 将调用另一个返回 true 或 false 的 [业务逻辑] 函数(。