Cómo actualizar un BindingSource basado en un DataContext modificado
-
20-08-2019 - |
Pregunta
En mi aplicación, extraigo los datos de un Linq To SQL DataContext en un diccionario para un uso fácil como este:
Jobs = dbc.Jobs.ToDictionary(j => j.Id, j => j);
Luego asocio este diccionario a BindingSource:
bsJob.DataSource = jobManager.Jobs.Values.ToList();
Actualizo el DataContext y el Diccionario regularmente para cuando se agregan nuevos trabajos a la base de datos (ya sea directamente a través de la aplicación local o la aplicación que se ejecuta en una máquina diferente):
dbc.Refresh(RefreshMode.OverwriteCurrentValues, dbc.Job);
Jobs = dbc.Job.ToDictionary(j => j.Id, j => j);
¿Cómo puedo actualizar BindingSource para acomodar los cambios también?
Solución
No veo la relación entre la clase Jobs y la clase Customer, por lo que supongo que querías escribir eso y no jobManager.Customers.Values.ToList ();
Suponiendo que ya tiene algún tipo de evento que active su actualización, ya que mencionó que actualizó " regularmente " ;, puede asignar un nuevo valor a la propiedad BindingSource.DataSource en ese momento como usted lo hizo originalmente.
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