C# 在两个不工作的控件之间共享绑定源

C# 在两个不工作的控件之间共享绑定源,c#,winforms,data-binding,C#,Winforms,Data Binding,我正在创建一个表单,它将充当主细节编辑器。我在这个表单上有两个控件。一个基本上是主项列表,另一个控制是项的详细信息。我试图在两个控件中使用相同的BindingSource对象,以便在主控件上进行更改时,细节控件将得到更新 在我的表格中,我有: EmployerCollection employerCollection = new EmployerCollection(); employerCollection.GetMulti(null, 0, new SortExpression(Employ

我正在创建一个表单,它将充当主细节编辑器。我在这个表单上有两个控件。一个基本上是主项列表,另一个控制是项的详细信息。我试图在两个控件中使用相同的BindingSource对象,以便在主控件上进行更改时,细节控件将得到更新

在我的表格中,我有:

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;