我有一个绑定到对象列表的 WinForms 组合框,列表如下:
BindingList<myObject> myListOfObjects = new BindingList<myObject>();
// 100 objects are added to myListOfObjects
bindingSource1.DataSource = myListOfObjects;
comboBox1.DataSource = bindingSource1;
comboBox1.DisplayMember = "Name";
我的对象的每个实例都包含以下内容:
public string Name
public int Index
public List<int> Codes = new List<int>();
该对象还实现了 INotifyPropertyChanged。
在组合框中选择对象“名称”时,我想将列表框数据绑定到所选对象的“代码”列表。我正在尝试这样做:
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
listBox1.DataSource = myListOfObjects[((myObject)comboBox1.SelectedValue).Index].Codes;
}
这不起作用,我得到一个 InvalidCastException(特别是 Int32 不能转换为 myObject)。我对这一切都错了吗?