我在表单上有一系列复选框。必须检查一个或多个,如果没有,我想在它们上显示一个错误图标,直到其中一个被选中。
我的 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 的复选框,则每个复选框上都会有一个错误图标,这很好,但是当其中一个被选中时,只有一个复选框的错误图标会被删除(与所有这些相反)。
更改其中任何一个时,将表单重新播放验证1-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