0

Winforms で DataBinding を使用しようとしたときに、問題が発生しました。DataSource DataGridView を更新してもデータが更新されないようです。どこに問題があるのか​​理解できません。

var companies = new List<Company> { new Company { Name = "Test", Id = 100 }}

項目リストを DataGridView にバインドするコードは次のとおりです。

bindingSource1.DataSource = _context.Companies;
dataGridView1.DataSource = bindingSource1.DataSource;

しかし、その後、companiesこのようにリストを更新すると

 companies.Add(new Company { Name = "MDG", Id = 500 });

新しく追加された項目が DataGridView に見つかりません。誰かが私が欠けているものを理解するのを手伝ってくれますか?

4

1 に答える 1

1

ここでの問題は、List への変更を BindingSource と DataGridView に自動的に認識させる方法がないことです。

代わりに、新しい BindingList() を使用してください。これには、BindingSource に通知するために呼び出されるイベントがあり、次にリストに新しい項目が追加されたことを DataGridView に通知します。

var companies = new BindingList<Company>();
companies.Add(new Company { Name = "Test", Id = 100 });
于 2012-11-19T01:51:55.803 に答える