绑定到也实现IEnumerable<>的对象

时间:2018-01-30 15:08:37

标签: c# winforms binding

我有以下课程:

public class FunctionList : IEnumerable<Function> {
   public string Comments {get; set;}

    public IEnumerator<Function> GetEnumerator() {
        return ...;
    }

    IEnumerator IEnumerable.GetEnumerator() {
        return this.GetEnumerator();
    }
}

此类的对象用作WinForm中的Binding的数据源:

this.checkEdit1.DataBindings.Add(new Binding(nameof(this.checkEdit1.EditValue), functionList, nameof(functionList.Comments), false, DataSourceUpdateMode.OnPropertyChanged));

问题是,当dataSourcefunctionList)实现IEnumerable<>时,绑定无法正常工作。当我删除此接口时,它正常工作。否则,我得到以下ArgumentException

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

dataSource实施IEnumerable<>时,我该怎么做才能使约束有效?

1 个答案:

答案 0 :(得分:0)

  

IEnumerable

     
    

Windows窗体控件可以绑定到仅支持IEnumerable接口的数据源(如果它们通过a绑定)     BindingSource组件。

  

https://docs.microsoft.com/en-us/dotnet/framework/winforms/data-sources-supported-by-windows-forms