2013-03-07 78 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符號,以便僅在第一次處理請求時才初始化頁面。

相關問題