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

时间:2013-10-04 07:44:51

标签: c# propertygrid

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

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

修改

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

的情况下避免这种情况

EDIT2 此问题也发布在Microsoft Forums

1 个答案:

答案 0 :(得分:0)

最简单:

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

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