通过引用ListBox.SelectedItems的结果找到“原始”ListItem?

时间:2012-09-15 17:00:23

标签: c# wpf list

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

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

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写入其条目中。

我是否有办法从Entity得到的字符串值中得到相应的SelectedItems? 我读过有关覆盖GetHashCode()Equal()的内容,但我不明白为什么这应该有效?

提前致谢!

1 个答案:

答案 0 :(得分:2)

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

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