2016-02-29 19 views
2

我有三個不同的組合框,它們通過數據源分配相同的值,但每個選擇更改都會影響其他實例。這怎麼可以避免?combobox數據源綁定會影響由相同數據設置的其他組合框實例

private void getVendorList() 
{ 
    DataTable data = this.vendorService.GetAllVendors(); 
    this.LoadDataGridView(data); 

    //set vendor combobox datasource 
    comboAddProdVendorId.DataSource = data; 
    comboAddProdVendorId.ValueMember = "Id"; 
    comboAddProdVendorId.DisplayMember = "Name"; 

    comboSearchProdVendorId.DataSource = data; 
    comboSearchProdVendorId.ValueMember = "Id"; 
    comboSearchProdVendorId.DisplayMember = "Name"; 


    comboAddTransacVendorId.DataSource = data; 
    comboAddTransacVendorId.ValueMember = "Id"; 
    comboAddTransacVendorId.DisplayMember = "Name"; 
} 

回答

1

在分配給數據源之前,您需要使用Copy這個DataTable。
試試這個:

private void getVendorList() 
{ 
    DataTable data = this.vendorService.GetAllVendors(); 
    this.LoadDataGridView(data); 

    //set vendor combobox datasource 
    comboAddProdVendorId.DataSource = data.Copy(); 
    comboAddProdVendorId.ValueMember = "Id"; 
    comboAddProdVendorId.DisplayMember = "Name"; 

    comboSearchProdVendorId.DataSource = data.Copy(); 
    comboSearchProdVendorId.ValueMember = "Id"; 
    comboSearchProdVendorId.DisplayMember = "Name"; 


    comboAddTransacVendorId.DataSource = data.Copy(); 
    comboAddTransacVendorId.ValueMember = "Id"; 
    comboAddTransacVendorId.DisplayMember = "Name"; 
} 
+0

這樣,它會工作。 –

+0

做到了!牢記這一點。 :) 非常感謝! – user572276

相關問題