オブジェクトのリストをコンボ ボックス オプションにバインドします
カスタム オブジェクト リストをコンボボックスにバインドし、その指定されたプロパティをオプション ラベルとして表示するソリューションが必要です。背景として、次のクラスについて考えてみましょう:
<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>
ステップバイステップガイド
バインディングを作成するには、次の手順に従います:
リストを作成します
<code class="language-c#"> List<Country> countries = new List<Country> { new Country { Name = "UK" }, new Country { Name = "Australia" }, new Country { Name = "France" } };</code>
BindingSource を初期化し、その DataSource を List に割り当てます
<code class="language-c#"> var bindingSource1 = new BindingSource(); bindingSource1.DataSource = countries;</code>
コンボ ボックスの DataSource を BindingSource の DataSource に設定します:
<code class="language-c#"> comboBox1.DataSource = bindingSource1.DataSource;</code>
コンボボックスに表示するプロパティを DisplayMember として指定します:
<code class="language-c#"> comboBox1.DisplayMember = "Name";</code>
コンボ ボックスによって返される値がプロパティを 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 サイトの他の関連記事を参照してください。