1

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

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

0 回答 0