我有一个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。即使使用嵌套对象,也可以正确访问其他成员。
答案 0 :(得分:0)
因为myList doenst有item而且找不到索引#2。 尝试添加如下的BindingList:
mylist.Add(new BindingList{
//itemList = value;
});
并调用索引,如:
mylist[0];
请注意,index []取决于列表的数量。