Я только что написал приложение для Windows, которое заполняет три комбинированных списка из одного источника данных. Мой источник данных является датируемым.
Я заполняю комбо-боксы, повторяя следующий код для каждого из комбо-боксов:
'populate 1st combobox
cbx1.DataSource = table
cbx1.DisplayMember = "someColumn"
cbx1.ValueMember = "anotherColumn"
cbx1.SelectedIndex = Indx
'populate 2nd combobox
cbx2.DataSource = table
cbx2.DisplayMember = "someColumn"
cbx2.ValueMember = "anotherColumn"
cbx2.SelectedIndex = Indx
'populate 3rd combobox
cbx3.DataSource = table
cbx3.DisplayMember = "someColumn"
cbx3.ValueMember = "anotherColumn"
cbx3.SelectedIndex = Indx
Когда приложение запускается и я выбираю элемент из выпадающего списка, скажем, cbx1, мой выбор отражается также в cbx2 и cbx3. Я нахожу это поведение странным и буду благодарен, если кто-нибудь сможет объяснить, что здесь происходит за кулисами.
Кстати, я смог обойти эту проблему, изменив код, как показано ниже, но все же хотел бы получить объяснение этого, на первый взгляд, странного поведения.
'populate 1st combobox
Dim t1 as datatable = table.Copy
cbx1.DataSource = t1
cbx1.DisplayMember = "someColumn"
cbx1.ValueMember = "anotherColumn"
cbx1.SelectedIndex = Indx
'populate 2nd combobox
Dim t2 as datatable = table.Copy
cbx2.DataSource = t2
cbx2.DisplayMember = "someColumn"
cbx2.ValueMember = "anotherColumn"
cbx2.SelectedIndex = Indx
'populate 3rd combobox
Dim t3 as datatable = table.Copy
cbx3.DataSource = t3
cbx3.DisplayMember = "someColumn"
cbx3.ValueMember = "anotherColumn"
cbx3.SelectedIndex = Indx