Comment mettre à jour un BindingSource basé sur un DataContext modifié
-
20-08-2019 - |
Question
Dans mon application, j'extrais les données d'un DataContext Linq To SQL dans un dictionnaire pour une utilisation facile, comme ceci:
Jobs = dbc.Jobs.ToDictionary(j => j.Id, j => j);
Ensuite, je lie ce dictionnaire à un BindingSource:
bsJob.DataSource = jobManager.Jobs.Values.ToList();
J'actualise régulièrement le DataContext et le dictionnaire lorsque de nouveaux travaux sont ajoutés à la base de données (que ce soit directement via l'application locale ou l'application exécutée sur un autre ordinateur):
dbc.Refresh(RefreshMode.OverwriteCurrentValues, dbc.Job);
Jobs = dbc.Job.ToDictionary(j => j.Id, j => j);
Comment puis-je mettre à jour BindingSource pour prendre également en compte les modifications?
La solution
Je ne vois pas la relation entre la classe Jobs et la classe Customer. Je suppose donc que vous vouliez taper cela et non pas jobManager.Customers.Values.ToList ();
En supposant que vous ayez déjà une sorte d'événement déclenchant votre actualisation, puisque vous avez mentionné que vous avez mis à jour & "régulièrement &", vous pouvez attribuer une nouvelle valeur à la propriété BindingSource.DataSource à ce moment-là, tout comme vous. a fait à l'origine.
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