我需要数据绑定帮助。想象一下这种情况。我有两个类,一个叫Isotope,另一个叫Photon。类同位素包含BindingList光子。我也有一个静态类StaticVariables,我把它放在BindingList同位素。现在,我想制作一张表格,让我浏览同位素列表。我创建了一个组合框CBIsotopes,我必然要StaticVariables.Isotopes:绑定控件到一组对象
CBIsotope.DataSource = StaticVariables.Isotopes;
CBIsotope.ValueMember = "IsotopeName";
CBIsotope.DisplayMember = "IsotopeName";
到目前为止,一切正常。现在我想创建一个datagridview DGVPhotons,它将显示所选同位素的所有光子。我的第一本能是做一些沿途的事情
DGVPhotons.DataSource = StaticVariables.ListOfIsotopes.Photons
这当然是行不通的。我想另一件事是使用ComboBox的SelectedItem属性:
(1)
DGVPhotons.DataSource = (CBIsotope.SelectedItem as Isotope).Photons;
这工作,但没有得到很好的,因为我想。如果我在加载时执行它,则没有任何反应,因为ComboBox是空的。如果我在ComboBox中实际选择一个项目时执行该操作,那么它可以工作,但是当我在ComboBox中更改选择时,DataGridView保持不变。解决方法是将行(1)放在ComboBox的SelectedIndexChanged中,但它对我来说似乎是一种强力方法,而且我觉得我的方法根本上是错误的......有没有更优雅的解决方案?