C# combobox数据源绑定会影响由相同数据集设置的combobox的其他实例

C# combobox数据源绑定会影响由相同数据集设置的combobox的其他实例,c#,winforms,C#,Winforms,我有三个不同的组合框,我通过datasource分配相同的值,但每次选择更改都会影响其他实例。如何避免这种情况 private void getVendorList() { DataTable data = this.vendorService.GetAllVendors(); this.LoadDataGridView(data); //set vendor combobox datasource comboAddProdVendorId.DataSource = data;

我有三个不同的组合框,我通过datasource分配相同的值,但每次选择更改都会影响其他实例。如何避免这种情况

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";
}

在分配给数据源之前,您需要复制数据表。
试试这个:

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";
}