簡體   English   中英

將控件綁定到對象集合

[英]Binding controls to a collection of objects

我需要數據綁定方面的幫助。 想象一下這種情況。 我有兩個班級,一個叫同位素,另一個叫光子。 同位素類包含BindingList光子。 我還有一個靜態類StaticVariables,在其中放置了BindingList Isotopes。 現在,我想制作一個表格,讓我可以瀏覽同位素列表。 我創建了一個組合框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中,但對我來說似乎是蠻力方法,我覺得我的方法根本上是錯誤的……還有一些更優雅的解決方案嗎?

好的,這里的關鍵是使用DataBind解決方案。 更改元素的source之后,不要忘了使用DataBind方法,以便綁定新數據。

而且,在PageLoad事件上,不要忘記僅在第一次處理請求時使用IsPostBack符號來初始化頁面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM