0

我正在创建一个充当主从编辑器的表单。我在这个表单上有 2 个控件。一个基本上是主项目列表,另一个控件是项目的详细信息。我试图在两个控件中使用相同的 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,但它似乎没有任何效果。

谢谢。

4

1 回答 1

0

我不认为 BindingSource 打算以这种方式使用。我建议将 EmployerCollection 值传递给 Init 方法,并让每个控件使用 EmployerCollection 创建自己的 BindingSource。

于 2012-05-14T21:04:12.143 回答