在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没有任何与位置相关的功能。
答案 0 :(得分:0)
为什么会自动发生这种情况?因为它们的DataSource属性设置为相同的数据表吗?
是
我认为datatable没有任何与位置相关的功能。
没有;但是绑定系统在幕后使用CurrencyManager
,它处理当前项目的概念。