ホームページ > バックエンド開発 > C++ > リストにバインドされた WinForms DataGridView を動的に更新する方法

リストにバインドされた WinForms DataGridView を動的に更新する方法

Mary-Kate Olsen
リリース: 2025-01-03 06:57:39
オリジナル
475 人が閲覧しました

How to Dynamically Update a WinForms DataGridView Bound to a List?

リストをバインドする方法データ更新による WinForms の DataGridView への

リストのバインド DataGridView への変換は、データを構造化された表形式で表示する場合に便利な手法です。ただし、基になるデータが変更されたときにグリッドが自動的に更新されるようにすることが重要です。

次のシナリオを考えてみましょう。

class Person{
    public string Name {get; set;}
    public string Surname {get; set;}
}
ログイン後にコピー

リスト<人> がある可能性があります。ここにいくつかの項目を追加します。

List<Person> persons = new List<Person>();
persons.Add(new Person(){Name="Joe", Surname="Black"});
persons.Add(new Person(){Name="Misha", Surname="Kozlov"});
ログイン後にコピー

最初、これらの項目は DataGridView に表示されます。ただし、人物リストに新しい項目を追加しても、DataGridView にはそれらの項目が表示されません。

問題

問題は、List が実装されていないことにあります。 IBindingList。これは、DataGridView が変更に関する通知を受信しないことを意味します。 data.

解決策

これを解決するには、BindingList を使用します。 List の代わりに。 BindingList IBindingList を実装し、必要なイベント通知を提供します。

var list = new BindingList<Person>(persons);
myGrid.DataSource = list;
ログイン後にコピー

BindingSource による高度なバインディング

並べ替えなどの追加機能を提供する BindingSource を使用すると、これをさらに進めることができます。 、フィルタリング、および

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;
ログイン後にコピー

これらの手法に従って、List をバインドできます。 WinForms の DataGridView に追加し、データの変更に応じてグリッドが最新の状態に保たれるようにします。

以上がリストにバインドされた WinForms DataGridView を動的に更新する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート