我正在创建一个充当主细节编辑器的表单。我在这个表单上有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,但它似乎没有任何效果。
感谢。
答案 0 :(得分:0)
我认为BindingSource并不打算以这种方式使用。我建议将EmployerCollection值传递给Init方法,并让每个控件使用EmployerCollection创建自己的BindingSource。