콤보 상자를 언급 할 때 양방향 데이터 바인딩을 사용하고 싶지 않다고 가정합니다 (그렇다면를 사용하여보십시오 BindingList
).
public class Country
{
public string Name { get; set; }
public IList<City> Cities { get; set; }
public Country(string _name)
{
Cities = new List<City>();
Name = _name;
}
}
List<Country> countries = new List<Country> { new Country("UK"),
new Country("Australia"),
new Country("France") };
var bindingSource1 = new BindingSource();
bindingSource1.DataSource = countries;
comboBox1.DataSource = bindingSource1.DataSource;
comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "Name";
바인딩 된 콤보 상자에서 선택한 국가를 찾으려면 다음과 같이하십시오 Country country = (Country)comboBox1.SelectedItem;
..
ComboBox가 동적으로 업데이트되도록하려면 설정 한 데이터 구조가 다음을 DataSource
구현 하는지 확인해야합니다 IBindingList
. 그러한 구조 중 하나는 BindingList<T>
.
팁 : DisplayMember
공용 필드가 아닌 클래스의 속성 에을 바인딩하고 있는지 확인하십시오 . 클래스에서 사용 public string Name { get; set; }
하는 경우 작동하지만 사용 public string Name;
하는 경우 값에 액세스 할 수없고 대신 콤보 상자의 각 줄에 대한 개체 유형을 표시합니다.