ホームページ > バックエンド開発 > C++ > カスタム オブジェクトのリストを ComboBox にバインドし、選択した項目を取得する方法

カスタム オブジェクトのリストを ComboBox にバインドし、選択した項目を取得する方法

Patricia Arquette
リリース: 2025-01-13 09:47:43
オリジナル
887 人が閲覧しました

How to Bind a List of Custom Objects to a ComboBox and Retrieve the Selected Item?

オブジェクトのリストをコンボ ボックス オプションにバインドします

カスタム オブジェクト リストをコンボボックスにバインドし、その指定されたプロパティをオプション ラベルとして表示するソリューションが必要です。背景として、次のクラスについて考えてみましょう:

<code class="language-c#">public class Country
{
    public string Name { get; set; }
    public IList<City> Cities { get; set; }

    public Country()
    {
        Cities = new List<City>();
    }
}</code>
ログイン後にコピー

ステップバイステップガイド

バインディングを作成するには、次の手順に従います:

  1. カスタム オブジェクト (国など) の

    リストを作成します:

    <code class="language-c#"> List<Country> countries = new List<Country> { new Country { Name = "UK" }, new Country { Name = "Australia" }, new Country { Name = "France" } };</code>
    ログイン後にコピー
  2. BindingSource を初期化し、その DataSource を List に割り当てます:

    <code class="language-c#"> var bindingSource1 = new BindingSource();
     bindingSource1.DataSource = countries;</code>
    ログイン後にコピー
  3. コンボ ボックスの DataSource を BindingSource の DataSource に設定します:

    <code class="language-c#"> comboBox1.DataSource = bindingSource1.DataSource;</code>
    ログイン後にコピー
  4. コンボボックスに表示するプロパティを DisplayMember として指定します:

    <code class="language-c#"> comboBox1.DisplayMember = "Name";</code>
    ログイン後にコピー
  5. コンボ ボックスによって返される値がプロパティを ValueMember として使用することを指定します:

    <code class="language-c#"> comboBox1.ValueMember = "Name";</code>
    ログイン後にコピー

選択したアイテムを取得します

コンボ ボックスから選択した Country オブジェクトを取得するには、選択した項目を対応する型にキャストします:

<code class="language-c#">Country selectedCountry = (Country)comboBox1.SelectedItem;</code>
ログイン後にコピー

動的更新

コンボ ボックスを自動的に更新する必要がある場合は、DataSource が IBindingList インターフェイスを実装していることを確認してください。 BindingList は、リアルタイムのデータ変更をサポートする実装です。

オブジェクトとプロパティを表示

DisplayMember はクラス内のプロパティ (例: "Name") を参照する必要があることに注意してください。フィールド (「名前;」など) を使用する場合、値にはアクセスできなくなり、コンボ ボックスにはプロパティ値の代わりにオブジェクト タイプが表示されます。

以上がカスタム オブジェクトのリストを ComboBox にバインドし、選択した項目を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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