![](/img/trans.png)
[英]Binding a collection of data objects in a model to a group of controls in a view (WPF)
[英]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.