试图绑定devexpress button.Enabled到扩展的绑定列表属性,它不起作用

时间:2013-11-25 19:12:08

标签: c# dynamic data-binding devexpress inotifypropertychanged

我有一个扩展的绑定列表用于我的目的:

public class MyList<T> : BindingList<T>, INotifyPropertyChanged
{
    private List<T> invalidObjectsList;

    public MyList() : base()
    {
        invalidObjectsList = new List<T>();
    }

    ...

    public bool IsValid 
    {
        get
        {
            return invalidObjectsList.Count == 0;
        }
    }

    ...

    // I have similar method for deletion
    AddElementToInvalidList(T element)
    {
        invalidObjectsList.Add(element);
        OnPropertyChanged("IsValid");
    }

    ...

    // Stuff for the INotifyPropertyChanged interface
    public event PropertyChangedEventHandler PropertyChanged;

    protected void OnPropertyChanged(string name)
    {
        PropertyChangedEventHandler handler = PropertyChanged;

        if (handler != null)
        {
            handler(this, new PropertyChangedEventArgs(name));
        }
    }

    ...
}

我正在设计UI以便能够使用该列表来修改和保存数据,让我们说数据库。所以在UI中我有一个DevXpress按钮来“保存数据”。实际列表分配为动态,表示:

dynamic list = DataProvider.GetObjectsList();

对于那个“保存数据”按钮,我试图将它的“Enabled”属性绑定到我的列表的“IsValid”属性,如下所示:

saveButton.DataBindings.Add("Enabled", list, "IsValid");

在运行时,我得到了未处理的异常:

Cannot bind to the property or column IsValid on the DataSource.
Parameter name: dataMember

我无法弄清楚这里有什么问题。请帮忙。

提前致谢!

0 个答案:

没有答案