ホームページ >バックエンド開発 >C++ >C# でオブジェクトのリストを ComboBox にバインドするにはどうすればよいですか?

C# でオブジェクトのリストを ComboBox にバインドするにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-13 06:13:43408ブラウズ

How to Bind a List of Objects to a ComboBox in C#?

C# ComboBox データ バインディング: オブジェクトのリストの表示

このガイドでは、C# ComboBox にオブジェクトのリストを入力し、各オブジェクトの特定のプロパティ (「名前」など) をドロップダウンの項目として表示する方法を説明します。 BindingSource を使用してデータ接続を管理します。

ステップ 1: データ クラスとリストの定義

まず、ComboBox で表現したいプロパティを含むクラス (例: Country) を作成します。 Name プロパティと City オブジェクトのリストの例を次に示します。

<code class="language-csharp">public class Country
{
    public string Name { get; set; }
    public IList<City> Cities { get; set; } = new List<City>();
}

public class City
{
    public string Name { get; set; }
}</code>

次に、Country オブジェクトのリストを作成します。

<code class="language-csharp">List<Country> countries = new List<Country>()
{
    new Country { Name = "UK" },
    new Country { Name = "Australia" },
    new Country { Name = "France" }
};</code>

ステップ 2: BindingSource のセットアップ

BindingSource オブジェクトを作成し、countries リストをそのデータ ソースとして割り当てます。

<code class="language-csharp">BindingSource bindingSource = new BindingSource();
bindingSource.DataSource = countries;</code>

ステップ 3: BindingSource を ComboBox に接続する

BindingSource をコンボボックスにリンクします:

<code class="language-csharp">comboBox1.DataSource = bindingSource;</code>

ステップ 4: 表示メンバーと値メンバーの構成

ComboBox ドロップダウンに表示するプロパティ (DisplayMember) と項目が選択されたときに取得するプロパティ (ValueMember) を指定します。

<code class="language-csharp">comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "Name"; // Or another suitable property if needed</code>

ステップ 5: 選択した項目へのアクセス

選択した Country オブジェクトを取得するには:

<code class="language-csharp">Country selectedCountry = (Country)comboBox1.SelectedItem;</code>

動的更新の処理 (IBindingList)

動的更新 (リストへの項目の追加または削除) の場合は、データ ソースが IBindingList インターフェイスを実装していることを確認してください。 BindingList<T> は良い選択です:

<code class="language-csharp">BindingList<Country> countries = new BindingList<Country>() { /* ... your countries ... */ };
bindingSource.DataSource = countries;</code>

このアプローチにより、基になる countries リストへの変更が ComboBox に自動的に反映されます。

以上がC# でオブジェクトのリストを ComboBox にバインドするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。