オブジェクトリストのリストにバインドされた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 としてキャストできません)。私はこれについてすべて間違っていますか?