バインディング BindingList
この WinForm シナリオでは、人物を表すクラスと List
バインディングについて
この問題は、List が IBindingList を実装していないという事実から発生します。その結果、DataGridView はリストに加えられた変更を認識しません。
解決策: BindingList
この問題を解決するには、DataGridView を BindingList< にバインドすることを検討してください。 ;T>その代わり。このクラスは IBindingList を実装し、DataGridView がバインドされたリストの変更の通知を受信できるようにします。
var list = new BindingList<Person>(persons); myGrid.DataSource = list;
さらに詳細な制御のための BindingSource
データのさらに詳細な制御用バインディングを使用する場合は、BindingList
var list = new List<Person>() { new Person { Name = "Joe", }, new Person { Name = "Misha", }, }; var bindingList = new BindingList<Person>(list); var source = new BindingSource(bindingList, null); grid.DataSource = source;
このアプローチを採用すると、データ ソースと DataGridView の間の一貫した動的なバインディングを維持でき、基になるデータへの更新がリアルタイムで確実に反映されます。
以上がリストに項目を追加した後、WinForms DataGridView が更新されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。