簡體   English   中英

在組合框中按對象值查找項目

[英]Finding an item by object value in Combobox

我有一個用Arraylist填充的組合框,如下所示。 如果我有同一對象的另一個實例,如何在組合框中選擇該對象? 請查看下面的代碼以了解。

        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/zh-cn/library/system.windows.forms.combobox.selecteditem.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM