У меня есть базовый класс Person, определенный следующим образом:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public Person(string name, int age)
{
this.Name = name;
this.Age = age;
}
}
Сейчас я создаю список таких людей:
private List<Person> people = new List<Person>();
people.Add(new Person("John Smith", 21));
people.Add(new Person("Bob Jones", 30));
people.Add(new Person("Mike Williams", 35));
Как только мой список заполнен, я хочу отсортировать его по имени:
// make sure that the list of people is sorted before assigning to bindingList
people.Sort((person1, person2) => person1.Name.CompareTo(person2.Name));
Далее я создаю BindingList, который я буду использовать в качестве источника данных для комбинированного списка следующим образом:
private BindingList<Person> bindingList = new BindingList<Person>(people);
comboBoxPeople.DataSource = bindingList;
comboBoxPeople.DisplayMember = "Name";
comboBoxPeople.ValueMember = "Name";
Пока все работает нормально. Но теперь у меня есть пара проблем, которые я не могу решить. Во-первых, мне нужно иметь возможность добавлять объекты Person и сохранять список отсортированным. Прямо сейчас я могу добавить новый объект Person в bindingList (через bindingList.Add(newPerson)
), и он будет отображаться в поле со списком, хотя и внизу (то есть не отсортировано). Как я могу заново отсортировать bindingList после того, как я что-то добавил к нему, чтобы он выглядел сортированным в comboBox?