我有一个包含Person类对象的List。我已将列表设置为ComboBox的DataSource。现在,当我将ComboBox的SelectedItem设置为Person类的新实例时,SelectedItem从不设置。为什么会这样?
public class Person
{
public Person(string name, int age)
{
Name = name;
Age = age;
}
public string Name { get; set; }
public int Age { get; set; }
}
public List<Person> lstPerson = new List<Person>();
private void Form1_Load(object sender, EventArgs e)
{
lstPerson.Add(new Person("Name1",1));
lstPerson.Add(new Person("Name2",2));
comboBox1.DataSource = lstPerson;
comboBox1.DisplayMember = "Name";
comboBox1.SelectedItem = lstPerson[1]; //If I put this line then it works
//comboBox1.SelectedItem = new Person("Name2", 2); // Not working if I put this line. How can I make this possible?
}
如何使此代码正常工作?我在很多论坛上都提过这个问题。没有任何解决方案。
答案 0 :(得分:0)
ComboBox类使用IndexOf方法搜索指定的对象。此方法使用Equals方法确定相等性。
你可以在Person对象上覆盖Equals(object obj)来实现你的目标