Windows窗体组合框自动同步;为什么?

时间:2014-01-27 01:06:12

标签: winforms combobox dataset

在VS 2010中,我通过从数据源窗口拖动到空表单来创建数据绑定表单。数据源(类型化数据集)有两列:CustomerCode和CustomerName。在表格的Load事件中,我写道:

private void SalesInvoiceForm_Load(object sender, EventArgs e)
{
  //Populate customer code combobox
  var customerTableAdapter = new companyDataSetTableAdapters.CustomerTableAdapter();
  customerTableAdapter.Fill(this.companyDataSet.Customer);
  customerCodeComboBox.DataSource = this.companyDataSet.Customer;
  customerCodeComboBox.ValueMember = "Code";
  customerCodeComboBox.DisplayMember = "Code";

  //Populate customer name combobox
  //customerNameComboBox.DataSource = this.companyDataSet.Customer;
  customerNameComboBox.ValueMember = "Name";
  customerNameComboBox.DisplayMember = "Name";


  this.salesInvoiceTableAdapter.Fill(this.companyDataSet.SalesInvoice);
}

不知何故,当我从customerCodeComboBox中选择客户代码时,customerNameComboBox会自动同步,即显示所选客户的名称。 customerNameComboBox也是如此。最初我认为我需要为每个组合框的SelectedIndexChanged事件hanlder提供一个代码,两个同步它们。为什么会自动发生这种情况?因为他们的DataSource属性设置为相同的数据表?我认为datatable没有任何与位置相关的功能。

1 个答案:

答案 0 :(得分:0)

  

为什么会自动发生这种情况?因为它们的DataSource属性设置为相同的数据表吗?

  

我认为datatable没有任何与位置相关的功能。

没有;但是绑定系统在幕后使用CurrencyManager,它处理当前项目的概念。