2014-02-12 109 views
0

我在這裏是新手,這是我的第一個問題,我事先對任何缺少信息,搜索或標籤的帖子或任何內容表示歉意。我正在寫一個非常簡單的winforms程序,而且我的級聯組合框出現問題,非常像國家>城市>城市我是新手,我使用的是實體框架,我是像這樣的東西越來越受:級聯數據綁定組合框

private void Form_CadAnimal_Load(object sender, EventArgs e) 
{ 
    using (DbClinvetEntities ctx = new DbClinvetEntities()) 
    { 
     cmb_especie.DataSource = ctx.Especie; 
     cmb_especie.DisplayMember = "Nome"; 
     cmb_especie.ValueMember = "EspecieID" 
     cmb_raca.DataSource = ctx.raca; 
     cmb_raca.DisplayMember = "Nome"; 
     cmb_raca.ValueMember = "RacaID"; 
    } 
} 

到目前爲止好一切是怎麼回事好,我去填充他們,我發現對此事無數的職位,但也許是缺乏知識我無法將他們與我的情況聯繫起來。 現在我想要做的就是通過在cmb_Especie中選擇的值來過濾cmb_Raca,只是爲了使它更清晰Raca表在Especie表上有一個外鍵,非常像您期望的國家>房地產。

我發現在SelectedIndexChanged上生成一個新的上下文並完成一個新的綁定的帖子,但我不知道是否有辦法讓這個工作沒有進一步調用Db,以任何方式採取對象列表並在第一次訪問後離線工作?

對不起,如果這是不明確的,我會glady編輯帖子,以提供進一步的信息,如果有必要。

+0

Winforms幾乎是最不自動的UI庫,你會發現...你將不得不附加到一個事件和每次更新從屬表的數據源。 – Crisfole

+0

sry的問題,但我如何更新數據源?我試圖使DataView dv = combobox.DataSource這樣的東西成爲DataView,但它總是返回null,並嘗試使用其他類型,但沒有成功。 – user3301962

+0

在你的代碼中,你已經更新了DataSource:'cmb_especie.DataSource = ctx.Especie' ...我可能在這裏是錯誤的,因此評論而不是答案,但是這應該是個訣竅。 – Crisfole

回答

0

嘗試使用SelectedIndex作爲查詢選擇命令。您可以構建一個模塊以便與將SelectedIndex.ToString()作爲參數構建查詢並將數據填充到表單的數據庫進行交談。 Combobox在使用時不一定必須是數據綁定的。

+0

然後我會做一個新的呼叫做Db每次索引改變了,或者至少我相信,我想避免這種行爲。感謝您的回覆無論如何 – user3301962

+0

您打算使用datagridview控件還是將其全部填充到ComboBoxes中? – Ronnie

+0

對不起,正如我所說我很新的Visual Studio,C#和所有這一切,我不知道我怎麼可以用datagridview解決這個問題,我期望用幾個文本框和組合框來做到這一點,但我對開發建議 – user3301962