通过引用列表框的结果查找"original"列表项。选定项?



我的ListBox出现了另一个问题。

我有一个class Entitystring Forename, Surname。现在我想向用户展示ListBox personList中的每个Entity。因此,我这样做:

foreach(Entity e in EntityHandler.entityList)
{
    personList.Items.Add(e.Name);
}

用户可以选择personList的多个条目。

单击按钮后,应用程序应评估foreach-循环中的每个选定条目。为此,我只需使用

foreach(string selected in personList.SelectedItems)
{
    //do some stuff
}

现在的问题是,可能有多个Entity实例具有完全相同的值。每个Entity之间唯一的静态区别是它的UID,但我不想把这个丑陋的UID写进它们的条目中。

有没有办法从SelectedItems得到的字符串值中得到相应的Entity?我读过关于覆盖GetHashCode()Equal()的文章,但我不知道为什么这应该起作用?

提前感谢!

您应该将实际实体绑定到ListBox,而不是仅绑定名称,并将ListBox的DisplayMemeber属性设置为Entity的"Name"属性。这将使您可以直接访问ListBox项-实体。

看看这个关于如何将对象绑定到ListBox的链接:http://sharpertutorials.com/list-box-data-binding/

最新更新