2013-03-07 56 views
0

我需要数据绑定帮助。想象一下这种情况。我有两个类,一个叫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中,但它对我来说似乎是一种强力方法,而且我觉得我的方法根本上是错误的......有没有更优雅的解决方案?

回答

0

好的,这里的关键是使用DataBind解决方案。在您更改source之后,请不要忘记使用DataBind之后的方法,以便绑定新的数据。

而且,在PageLoad事件中,不要忘记使用IsPostBack符号,以便仅在第一次处理请求时才初始化页面。

相关问题