결합 목록을 사용하여 ComboBox 작동
이 문서에서는 사용자 정의 클래스 개체 목록을 ComboBox 컨트롤에 바인딩하는 방법을 설명합니다. 해결책은 다음과 같습니다.
먼저 Country
클래스를 수정하고 생성자를 추가하여 Name
및 Cities
속성을 초기화합니다.
<code class="language-csharp">public class Country { public string Name { get; set; } public IList<City> Cities { get; set; } public Country(string name) { Name = name; Cities = new List<City>(); } }</code>
Country
개체 목록 만들기:
<code class="language-csharp">List<Country> countries = new List<Country> { new Country("英国"), new Country("澳大利亚"), new Country("法国") };</code>
BindingSource
을 초기화하고 DataSource
를 국가 목록으로 설정합니다.
<code class="language-csharp">var bindingSource1 = new BindingSource(); bindingSource1.DataSource = countries;</code>
ComboBox의 DataSource
을 BindingSource
의 DataSource
에 바인딩:
<code class="language-csharp">comboBox1.DataSource = bindingSource1.DataSource;</code>
ComboBox의 DisplayMember
및 ValueMember
를 Country
클래스의 해당 속성으로 설정합니다:
<code class="language-csharp">comboBox1.DisplayMember = "Name"; comboBox1.ValueMember = "Name";</code>
이제 ComboBox가 목록에 있는 각 국가의 이름을 표시합니다. 선택한 국가를 검색하려면 ComboBox의 SelectedItem
속성을 사용할 수 있습니다.
<code class="language-csharp">Country selectedCountry = (Country)comboBox1.SelectedItem;</code>
동적 업데이트의 경우 데이터 구조가 IBindingList
인터페이스를 구현해야 합니다. BindingList<T>
을 사용하는 것이 좋습니다.
올바른 표시와 기능을 보장하려면 DisplayMember
을 공개 필드가 아닌 속성에 바인딩해야 합니다.
위 내용은 C#에서 사용자 정의 클래스 목록을 ComboBox에 바인딩하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!