代码之家  ›  专栏  ›  技术社区  ›  Michael Klement

如何基于修改的DataContext更新BindingSource

  •  0
  • Michael Klement  · 技术社区  · 15 年前

    在我的应用程序中,我将Linq To SQL DataContext的数据提取到字典中,以便于使用,如下所示:

    Jobs = dbc.Jobs.ToDictionary(j => j.Id, j => j);
    

    然后我将此词典绑定到BindingSource:

    bsJob.DataSource = jobManager.Jobs.Values.ToList();
    

    我定期刷新DataContext和字典,以便在向数据库添加新作业时(无论是直接通过本地应用程序还是通过在不同机器上运行的应用程序):

    dbc.Refresh(RefreshMode.OverwriteCurrentValues, dbc.Job);
    Jobs = dbc.Job.ToDictionary(j => j.Id, j => j);
    

    如何更新BindingSource以适应这些更改?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Luis    15 年前

    我看不到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