c# - 具有相同数据源的两个 ComboBox 导致选择被遗忘
问题描述
我已经BindingSource
定义:
public System.Windows.Forms.BindingSource bsContractors;
this.bsContractors.DataSource = typeof(Contractor);
然后ComboBox
aDataSource
定义如下:
private System.Windows.Forms.ComboBox cmbConstructionContractors1;
this.cmbConstructionContractors1.DataBindings.Add(new System.Windows.Forms.Binding("SelectedValue", this.bsProject, "Id", true));
this.cmbContractors1.DataSource = this.bsContractors;
this.cmbContractors1.DisplayMember = "Name";
this.cmbContractors1.ValueMember = "Id";
this.cmbContractors1.SelectedIndexChanged += new System.EventHandler(this.cmbContractor1Selected);
这工作正常。我使用相同的数据源 在另一个ComboBox
上定义了另一个:Form
this.cmbContractorName2.DataBindings.Add(new System.Windows.Forms.Binding("SelectedValue", myView.bsProject, "Id", true));
this.cmbContractorName2.DataSource = projectView.bsContractors;
this.cmbContractorName2.ValueMember = "Id";
this.cmbContractorName2.DisplayMember = "Name";
this.cmbContractorName2.SelectedIndexChanged += new System.EventHandler(this.cmbContractor2Selected);
当ComboBox
显示第二个时,第一个ComboBox
已选择的内容将重置为第一个条目,该条目为空白。如果我下拉第一个ComboBox
,列表仍然存在,它只是“忘记”选择了哪个。
编辑:我发现在显示 2nd 时ComboBox
,第一个的 EventHandler 以ComboBox1
某种方式被分配给cmbContractors2Selected
而不是原来的cmbContractors1Selected
解决方案
尝试给它自己的绑定对象:
this.cmbContractorName2.DataSource = new BindingSource(projectView.bsContractors, null);
这将分离货币经理。
推荐阅读
- flutter - 循环如何在颤振中工作
- python - 嗨,我刚开始学习python。如何替换字符串中的字符
- npm - 为双目录项目运行 NPM 监视脚本
- debugging - 如何在 PyCharm 中向后调试?
- php - 仅当用户角色和元键存在时才显示特定的 WooCommerce 产品并隐藏其余产品
- mysql - MySQL 在分隔的连字符列表中查找值
- mysql - 2 @Index 和 1 @Index 在休眠中的多列之间的区别?
- ansible - Ansible 标准输出作为 blockinfile 标记
- python - How to test one image in keras and output the prediction with its name
- c++ - How to write Numbers With Commas?