Вам просто нужно установить ComboBox.DataSource
для объекта List<Person>
, представленного здесь свойством PersonList
.
Добавьте DataBinding
к элементам управления, которые необходимо обновить, когда ComboBox выбирает новый элемент из его DataSource
:
textBoxFirstName.DataBindings.Add("Text", PersonList, "FirstName");
Элементы управления обновляются автоматически.
В обработчике ComboBox SelectedIndexChanged
вы можете установить значение свойства SelectedPerson
для текущего SelectedItem
, приведя его к классу Person
.
public List<Person> PersonList { get; set; }
public Person SelectedPerson { get; set; }
private void InitializePersonList()
{
this.PersonList = new List<Person>
{
new Person { FirstName = "Bob", LastName = "Builder" },
new Person { FirstName = "Mary", LastName = "Poppins" }
};
}
private void InitializeDataBinding()
{
comboBox.DisplayMember = "FirstName";
comboBox.DataSource = this.PersonList;
textBoxFirstName.DataBindings.Add("Text", PersonList, "FirstName");
textBoxLastName.DataBindings.Add("Text", PersonList, "LastName");
}
private void comboBox_SelectedIndexChanged(object sender, EventArgs e)
{
this.SelectedPerson = (Person)(sender as ComboBox).SelectedItem;
}