我有一个像这样定义的基本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对象并使列表保持排序。现在,我可以向bindingList添加一个新的Person对象(通过bindingList.Add(newPerson)
),它将显示在comboBox中,尽管在底部(即未排序)。一旦我添加了一些东西,它怎么能重新排序bindingList,以便它出现在comboBox中排序?
答案 0 :(得分:0)
老实说,我不需要特殊清单。只要用你手中的东西,换句话说就不要重新发明轮子。
以下是与您相同的问题和解决方案: