在我的应用程序中,我将Linq To SQL DataContext的数据提取到字典中,以便于使用,如下所示:
Jobs = dbc.Jobs.ToDictionary(j => j.Id, j => j);
然后我将这个字典绑定到BindingSource:
bsJob.DataSource = jobManager.Jobs.Values.ToList();
我定期刷新DataContext和Dictionary,以便在将新作业添加到数据库时(无论是直接通过本地应用程序还是在不同计算机上运行的应用程序):
dbc.Refresh(RefreshMode.OverwriteCurrentValues, dbc.Job);
Jobs = dbc.Job.ToDictionary(j => j.Id, j => j);
如何更新BindingSource以适应更改?
答案 0 :(得分:1)
我没有看到从Jobs类到Customer类的关系,所以我假设你打算键入它而不是jobManager.Customers.Values.ToList();
假设您已经有某种事件触发刷新,因为您提到“定期”更新,您可以在此时为BindingSource.DataSource属性分配一个新值,就像您最初一样。
dbc.Refresh(RefreshMode.OverwriteCurrentValues, dbc.Customer);
Customers = dbc.Customer.ToDictionary(c => c.Id, c => c);
bsJob.DataSource = jobManager.Jobs.Values.ToList(); //Assuming this statement was correct