変更されたDataContextに基づいてのBindingSourceを更新する方法
-
20-08-2019 - |
質問
私のアプリケーションでは、私はそうのような使いやすい辞書にSQLのDataContextへのLINQのデータを抽出します:
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を更新するにはどうすればよい?
解決
私は、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
所属していません StackOverflow