Я создал следующий класс для моделирования человека:
namespace DataBindingTest
{
public enum colorEnum
{
Red,
Green,
Yellow,
Blue,
}
class Person
{
private string _Name;
private int _Age;
private colorEnum _FavoriteColor;
private bool _HasAllergies;
public string Name
{
get { return _Name; }
set { _Name = value; }
}
public int Age
{
get { return _Age; }
set { _Age = value; }
}
public colorEnum FavoriteColor
{
get { return _FavoriteColor; }
set { _FavoriteColor = value; }
}
public bool HasAllergies
{
get { return _HasAllergies; }
set { _HasAllergies = value; }
}
}
}
В моей основной форме у меня есть поле со списком, которое будет привязано к массиву объектов Person. Когда я выбираю человека из этого поля со списком, я хочу отобразить его возраст (в элементе управления NumericUpDown), наличие у него аллергии (в виде флажка) и его любимый цвет (в другом поле со списком с DropDownStyle, установленным в DropDownList). Для этого у меня есть:
- В мою форму добавлен comboBox (comboBoxPeople), элемент управления NumericUpDown, checkBox и еще один comboBox (comboBoxFavoriteColor).
- Создал новый DataSource из моего класса Person, объявленного выше
- Добавлен BindingSource в мою форму
- Задайте для свойства DataSource BindingSource значение DataSource, определенное в # 2.
- Установите DataSource для comboBoxPeople на BindingSource и DisplayMember на свойство Name объекта BindingSource.
- Я привязал свойство Age объекта BindingSource к элементу управления NumericUpDown, а свойство HasAllergies элемента BindingSource - к элементу управления checkBox.
- В моем конструкторе я создал массив из 3 объектов Person, определил все их свойства, а затем установил свойство DataSource объекта BindingSource для этого массива.
Пока все работает как положено. Теперь я хотел бы отобразить любимый цвет человека (то есть свойство FavoriteColor объекта BindingSource) в comboBoxFavoriteColor. Я установил для DropDownStyle значение DropDownList, поскольку FavoriteColor - это перечисление. Однако мне неясно, как я должен привязать этот comboBox, чтобы он 1) содержал значения перечисления FavoriteColor и 2) имел соответствующий цвет, установленный в качестве SelectedItem, когда я выбираю человека из comboBoxPeople. Кто-нибудь может дать мне представление об этом? Большое спасибо!