在组合框中按对象值查找项目
本文关键字:查找 项目 对象 组合 | 更新日期: 2023-09-27 18:03:54
我有一个用数组列表填充的组合框,如下所示。如果我有相同对象的另一个实例,我如何在组合框中选择该对象?请看下面的代码来理解。
MakeEntity selectedMake = Make.GetMakeByTitle("Honda");
List<MakeEntity> allMakes = Make.GetAllMakes();
cbVehicleMake.DataSource = allMakes;
cbVehicleMake.SelectedIndex = cbVehicleMake.Items.IndexOf(selectedMake);
但是最后一行没有像预期的那样工作。我能让它跑起来吗,还是我走错方向了?MakeEntity应该实现iComparable吗?
假设MakeEntity有一个名为id的属性!
cbVehicleMake.SeletedItem=allMakes.Find(q=>q.Id==selectedMake.Id))
您不需要为IndexOf
实现IComparable
,只需Equals
。否则,它将默认为Object.Equals
,只有当两个引用指向同一个实例时才匹配。(如果没有看到MakeEntity
的定义,不确定这是否有问题。)
也可以用:
cbVehicleMake.SelectedItem = selectedMake;
这将在内部处理在选项中查找对象。
文档:http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.selecteditem.aspx