在相关但非互斥的复选框上使用IDataErrorInfo

时间:2010-08-26 16:41:59

标签: c# winforms validation idataerrorinfo

我在表单上有一系列复选框。必须检查一个或多个,如果不是,我想在它们中显示错误图标,直到其中一个为。

我的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

0 个答案:

没有答案