我在.NET应用程序中遇到BindingContext问题。我需要使用相同的数据源填充6个组合框,但前3个组合框必须与最后3个组合框独立。
我编码了以下内容:
combo_Bancos_cheque.DataSource = bancos;
combo_Bancos_cheque.DisplayMember = "Nombre";
combo_Bancos_cheque.ValueMember = "IDBanco";
combo_ctas_cheque.DataSource = bancos;
combo_ctas_cheque.DisplayMember = "NoCuenta";
combo_clabe_cheque.DataSource = bancos;
combo_clabe_cheque.DisplayMember = "CLABE";
combo_Bancos_dep.BindingContext = new BindingContext();
combo_Bancos_dep.DataSource = bancos;
combo_Bancos_dep.DisplayMember = "Nombre";
combo_Bancos_dep.ValueMember = "IDBanco";
combo_ctas_dep.DataSource = bancos;
combo_ctas_dep.DisplayMember = "NoCuenta";
combo_clabe_dep.DataSource = bancos;
combo_clabe_dep.DisplayMember = "CLABE";
前3个组合框工作正常,当combo_Bancos_cheque更改combo_ctas_cheque时,combo_clabe_cheque也会更改哪个是预期的行为。然后我创建一个新的BindingContext来取消绑定4,5& 6个组合框也使用相同的数据源。 这里的问题是:当combo_Bancos_cheque值发生变化时,combo_ctas_dep& combo_clabe_dep也发生了变化,但我不想这样,只有当combo_Bancos_dep发生变化时才需要更改这些组合框。
我是BindingContexts的新手,我缺少什么?
答案 0 :(得分:1)
这是一个快速猜测,但是你不需要将组合框5和6指向与组合4(combo_Bancos_dep)相同的绑定上下文吗?
如果在变量中创建新的绑定上下文,然后将其设置为CB 4,5和6,该怎么办?
编辑: 我刚检查确认,以上是正确的。你真的很亲密,你只需要将新的BindingContext设置为combo_ctas_dep和combo_clabe_dep。
以下是您发布的更改内容:
combo_Bancos_cheque.DataSource = bancos;
combo_Bancos_cheque.DisplayMember = "Nombre";
combo_Bancos_cheque.ValueMember = "IDBanco";
combo_ctas_cheque.DataSource = bancos;
combo_ctas_cheque.DisplayMember = "NoCuenta";
combo_clabe_cheque.DataSource = bancos;
combo_clabe_cheque.DisplayMember = "CLABE";
BindingContext oBC = new System.Windows.Forms.BindingContext();
combo_Bancos_dep.BindingContext = oBC;
combo_Bancos_dep.DataSource = bancos;
combo_Bancos_dep.DisplayMember = "Nombre";
combo_Bancos_dep.ValueMember = "IDBanco";
combo_ctas_dep.BindingContext = oBC;
combo_ctas_dep.DataSource = bancos;
combo_ctas_dep.DisplayMember = "NoCuenta";
combo_clabe_dep.BindingContext = oBC;
combo_clabe_dep.DataSource = bancos;
combo_clabe_dep.DisplayMember = "CLABE";
答案 1 :(得分:0)
根据我的推断,我相信行为是预期的 - 你将相同的来源绑定到组合框。
我相信这句话:
combo_Bancos_dep.BindingContext = new BindingContext();
不按照您的意愿行事 - 即绑定到新来源。
如果“bancos”是DataTable,您可以删除上面的行并在“bancos”上执行复制以创建新的DataTable并使用它来绑定其他组合:
DataTable copyOfbancos = bancos.Copy();
combo_Bancos_dep.DataSource = copyOfbancos;
combo_Bancos_dep.DisplayMember = "Nombre";
combo_Bancos_dep.ValueMember = "IDBanco";