2011-09-08 24 views
0

我有一個.NET應用程序使用的BindingContext問題。我需要用相同的數據源填充6個組合框,但前3個組合框必須獨立於最後3個組合框。的BindingContext問題

我編寫如下:

 combo_Bancos_cheque.DataSource = bancos; 
     combo_Bancos_cheque.DisplayMember = "Nombre"; 
     combo_Bancos_cheque.ValueMember = "IDBanco"; 
     combo_ctas_cheque.DataSource = bancos; 
     combo_ctas_cheque.DisplayMember = "NoCuenta"; 
     combo_clabe_cheque.DataSource = bancos; 
     combo_clabe_cheque.DisplayMember = "CLABE"; 

     combo_Bancos_dep.BindingContext = new BindingContext(); 
     combo_Bancos_dep.DataSource = bancos; 
     combo_Bancos_dep.DisplayMember = "Nombre"; 
     combo_Bancos_dep.ValueMember = "IDBanco"; 
     combo_ctas_dep.DataSource = bancos; 
     combo_ctas_dep.DisplayMember = "NoCuenta"; 
     combo_clabe_dep.DataSource = bancos; 
     combo_clabe_dep.DisplayMember = "CLABE"; 

第3個組合框做工精細,當combo_Bancos_cheque改變combo_ctas_cheque和combo_clabe_cheque也改變這是預期的行爲。然後,我創建了一個新的BindingContext解除綁定4,5 & 6組合框也使用相同的數據源。 這裏的問題是:當combo_Bancos_cheque值的變化,combo_ctas_dep & combo_clabe_dep也改變,但我不想這樣,我需要這些組合框僅當combo_Bancos_dep的變化而變化。

我是新來BindingContexts,我缺少什麼?

+0

什麼類型的銀行 - 一個DataTable? – Arun

+0

是一個對象集,我使用的是實體到SQL –

回答

1

這是一個快速猜測,但是您不需要將組合框5和6指向與組合4(combo_Bancos_dep)相同的綁定上下文嗎?

如果你創建新的綁定上下文到一個變量,然後將其設置爲可轉債4,5和6?

編輯: 我只是檢查確認,以上是正確的。你非常接近,你只需要將新的BindingContext設置爲combo_ctas_dep和combo_clabe_dep。

這裏是你貼什麼與變化:

combo_Bancos_cheque.DataSource = bancos; 
    combo_Bancos_cheque.DisplayMember = "Nombre"; 
    combo_Bancos_cheque.ValueMember = "IDBanco"; 
    combo_ctas_cheque.DataSource = bancos; 
    combo_ctas_cheque.DisplayMember = "NoCuenta"; 
    combo_clabe_cheque.DataSource = bancos; 
    combo_clabe_cheque.DisplayMember = "CLABE"; 

    BindingContext oBC = new System.Windows.Forms.BindingContext(); 
    combo_Bancos_dep.BindingContext = oBC; 
    combo_Bancos_dep.DataSource = bancos; 
    combo_Bancos_dep.DisplayMember = "Nombre"; 
    combo_Bancos_dep.ValueMember = "IDBanco"; 
    combo_ctas_dep.BindingContext = oBC; 
    combo_ctas_dep.DataSource = bancos; 
    combo_ctas_dep.DisplayMember = "NoCuenta"; 
    combo_clabe_dep.BindingContext = oBC; 
    combo_clabe_dep.DataSource = bancos; 
    combo_clabe_dep.DisplayMember = "CLABE"; 
+0

感謝您的代碼像魅力一樣工作。 –

0

從我可以推斷,我認爲是正常現象 - 你要綁定同一個源到組合框。

我相信這樣的說法:

combo_Bancos_dep.BindingContext = new BindingContext(); 

不會做你希望它做的事情 - 這是綁定到新源。

如果「淺灘」是一個DataTable,你可以刪除上面的行,只是做的「淺灘」副本創建一個新的DataTable,並用它來綁定您的其他連擊:

DataTable copyOfbancos = bancos.Copy(); 
combo_Bancos_dep.DataSource = copyOfbancos; 
combo_Bancos_dep.DisplayMember = "Nombre"; 
combo_Bancos_dep.ValueMember = "IDBanco";  
+0

我剛做了一個快速的示例來驗證,並且沒有必要重複製作一個數據表來完成此操作。通過使用不同的BindingContext,它可以以最小的開銷完成,他只是沒有把它放在一起非常正確。 –

相關問題