Winforms数据绑定到数组或列表中的特定元素

时间:2014-09-25 16:23:40

标签: c# winforms data-binding

我有一个BindingSource,其中一个对象绑定到我的控件。表单在运行时从列表中生成了很多文本框。简化的代码如下:

public class MyClassname: INotifyPropertyChanged
{
    // some more properties here ...
    public BindingList<string> mylist{ get; set; }
}
// ...
public MyClassname myclassname = new MyClassname();
private BindingSource bs = new BindingSource();
// ...
bs.DataSource = typeof(myclassname);
bs.Add(myclassname);
// ...
textBox.DataBindings.Add("Text", bs, "mylist[2]");

我收到以下错误:

  

DataMember属性&#34; mylist [2]&#34;无法在DataSource上找到

我已经尝试了更多类型,如字典,数组或列表,并试图以各种方式访问​​它,但没有任何成功。

如果我直接绑定到这样的元素:

textBox.DataBindings.Add("Text", myclassname.mylist[2], "");

它有效,但绑定只是一种方式。 (在别处修改时不会更新文本框)

P.S。即使使用嵌套对象,也可以正确访问其他成员。

1 个答案:

答案 0 :(得分:0)

因为myList doenst有item而且找不到索引#2。 尝试添加如下的BindingList:

mylist.Add(new BindingList{
//itemList = value;
});

并调用索引,如:

mylist[0];

请注意,index []取决于列表的数量。