我在表单上有一系列复选框。必须检查一个或多个,如果不是,我想在它们中显示错误图标,直到其中一个为。
我的IDataErrorInfo实现如下:
public string this[string columnName]
{
get
{
switch (columnName)
{
case "option1":
case "option2":
case "option3":
if (!this.option1 && !this.option2 && !this.option3)
return "Please select one or more of the 3 options";
}
}
}
现在,如果没有选中绑定到options1-3的复选框,则每个复选框都会有一个错误图标,这很好,但是当其中一个复选框被选中时,只有那一个复选框会出现错误图标已删除(与所有图标相对)。
当其中任何一个更改时,为options1-3进行表单重新轮询验证的理想方法是什么?
如果它有帮助(尽管我认为它与正常的winforms控件不同),我使用的是DevExpress UI控件,因此复选框是CheckBoxEdit,而ErrorProvider是DxErrorProvider。
编辑:已解决
当一个选项被更改时,我最终手动通知其他选项的属性已更改。
private bool option1;
public bool Option1
{
get { return this.option1; }
set
{
this.option1 = value;
this.notifyPropertyChanged("Option1");
this.notifyPropertyChanged("Option2");
this.notifyPropertyChanged("Option3");
}
}
// repeat for options2-3