为什么在将IList绑定到组合框时会出现异常?

时间:2010-09-20 16:32:58

标签: c# .net binding combobox

我有以下类/接口。我收到一个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;

1 个答案:

答案 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"));