0
我正在創建一個表單,它將充當主 - 細節編輯器。我在這個表單上有兩個控件。一個基本上是主項目的清單,另一個控制是項目的細節。我試圖在兩個控件中使用相同的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,但它似乎沒有任何影響。
謝謝。
當您分配bsEmployers = bs;你會覆蓋綁定源的引用,但所有的控件仍然綁定到舊的bsEmployers。嘗試從窗體設計器中移除綁定源,並以編程方式創建它,並將其分配給正在使用它的所有子控件。你也可以嘗試調用bsEmployers.DataSource = bs.DataSource; –