我有以下类/接口。我收到一个ArgumentException,说“Complex DataBinding接受IList或IListSource作为数据源”。但是,我将它设置为IList。我做错了什么?
public interface IOriginList : IList<IOriginEntry>
{
...
}
public class OriginList : Interfaces.IOriginList
{
...
}
// Binding code
IList<IOriginEntry> originList = new OriginList();
cboOrigin.DataSource = originList;
答案 0 :(得分:1)
我不相信您可以绑定到通用IList&lt;&gt;,只能绑定非通用IList。
试试这个:
cboOrigin.DataSource = originList.ToArray();
*编辑*
实际上,问题可能是IList是接口类型? IOriginEntry无处设置为具体对象,您无法将组合框项绑定到接口。
你也可以试试这个:
public class OriginEntry {
public string Name {get; set;}
}
public interface IOriginList : IList<OriginEntry> {
...
}
public class OriginList : Interfaces.IOriginList {
...
}
// Binding code
IList<IOriginEntry> originList = new OriginList();
cboOrigin.DataBindings.Add(new Binding("SelectedValue", originList, "Name"));