我的ListBox出现了另一个问题。
我有一个class Entity
和string 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/