Мне нужна помощь в привязке данных. Представьте себе эту ситуацию. У меня есть два класса, один по имени Изотоп, другой по имени Photon. Изотоп класса содержит BindingList Photons. У меня также есть статический класс StaticVariables, где я помещаю BindingList Isotopes. Теперь я хочу создать форму, которая позволит мне просмотреть список изотопов. Я создал выпадающий CBIsotopes, что я обязан StaticVariables.Isotopes:Управление привязкой к коллекции объектов
CBIsotope.DataSource = StaticVariables.Isotopes;
CBIsotope.ValueMember = "IsotopeName";
CBIsotope.DisplayMember = "IsotopeName";
До сих пор все работает. Теперь я хочу создать datagridview DGVPhotons, который покажет все фотоны выбранного изотопа. Мой первый инстинкт состоял в том, чтобы что-то сделать по пути
DGVPhotons.DataSource = StaticVariables.ListOfIsotopes.Photons
который, конечно, не работает. Еще одна вещь, которую я пытался это использовать SelectedItem собственность в ComboBox:
(1)
DGVPhotons.DataSource = (CBIsotope.SelectedItem as Isotope).Photons;
Это работает, но не так хорошо, как хотелось бы. Если я делаю это во время загрузки, ничего не происходит, потому что ComboBox пуст. Если я это сделаю, когда элемент действительно выбран в ComboBox, то он работает, но по мере того как я изменяю выделение в ComboBox, DataGridView остается прежним. Решение было бы поставить строку (1) в SelectedIndexChanged из ComboBox, но для меня это похоже на метод грубой силы, и я чувствую, что мой подход в корне неверен ... Есть ли еще более элегантное решение?