C# 在两个不工作的控件之间共享绑定源
我正在创建一个表单,它将充当主细节编辑器。我在这个表单上有两个控件。一个基本上是主项列表,另一个控制是项的详细信息。我试图在两个控件中使用相同的BindingSource对象,以便在主控件上进行更改时,细节控件将得到更新 在我的表格中,我有:C# 在两个不工作的控件之间共享绑定源,c#,winforms,data-binding,C#,Winforms,Data Binding,我正在创建一个表单,它将充当主细节编辑器。我在这个表单上有两个控件。一个基本上是主项列表,另一个控制是项的详细信息。我试图在两个控件中使用相同的BindingSource对象,以便在主控件上进行更改时,细节控件将得到更新 在我的表格中,我有: EmployerCollection employerCollection = new EmployerCollection(); employerCollection.GetMulti(null, 0, new SortExpression(Employ
EmployerCollection employerCollection = new EmployerCollection();
employerCollection.GetMulti(null, 0, new SortExpression(EmployerFields.Name | SortOperator.Ascending));
bsEmployers.DataSource = employerCollection;
masterControl.Init(bsEmployers);
detailControl.Init(bsEmpoyers);
在我的masterControl中,我有:
public void Init(BindingSource bs)
{
bsEmployers = bs;
}
然而,在我的一生中,当我以这种方式传递数据时,我无法让我的主控件在绑定源中显示数据
只有删除bsEmployers=bs行并按如下方式移动其他逻辑,才能使绑定生效:
public void Init(BindingSource bs)
{
EmployerCollection employerCollection = new EmployerCollection();
employerCollection.GetMulti(null, 0, new SortExpression(EmployerFields.Name | SortOperator.Ascending));
bsEmployers.DataSource = employerCollection;
}
有人知道我不能传递BindingSource对象来共享什么吗?我尝试在我的控件中调用RefreshBindings,但似乎没有任何效果
谢谢。我不认为BindingSource是打算这样使用的。我建议将EmployerCollection值传递给Init方法,并让每个控件使用EmployerCollection创建自己的BindingSource。当您分配bsEmployers=bs时;覆盖绑定源的引用,但所有控件仍绑定到旧的BSP。尝试从窗体设计器中删除绑定源,并以编程方式创建它,并将其分配给使用它的所有子控件。您还可以尝试调用bsEmployers.DataSource=bs.DataSource;