Вопрос

В моем приложении я извлекаю данные из контекста данных Linq To SQL в словарь для удобства использования следующим образом:

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, чтобы учесть изменения?

Это было полезно?

Решение

Я не вижу связи между классом 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top