我有一系列对象,例如人和关于它们的信息。我怎样才能确定在列表框中选择了谁,只显示了他们的名字和姓氏?是否有可能以某种方式将列表框中的项目与数组中的项目链接?显然我不能依赖SelectedIndex,因为当列表框中的名称被过滤时,它就不再起作用了。
在我的应用程序中,我有一个列表框,其中是人员名称,当我点击列表框中的一个人时,我想看到他们的详细信息(地址/ contacs / misc)。问题是当两个人有相同的名字时。
答案 0 :(得分:3)
您可以像这样使用ListBox.SelectedItem ...如果您需要,可以创建一个新属性来连接FirstName和Surname并将其用作DisplayMember
public class Person
{
public string FirstName { get; set; }
public string Surname { get; set; }
}
var people = new[]
{
new Person{FirstName = "Peter", Surname = "Pan"},
new Person{FirstName = "Simon", Surname = "Cowell"}
};
var listbox = new ListBox
{
DisplayMember = "FirstName",
ValueMember = "FirstName",
DataSource = people
};
var person = listbox.SelectedItem as Person;
答案 1 :(得分:0)
我建议在对象列表中添加一个唯一键。然后,您将能够使用唯一键作为列表项的值,您可以在选择项目时获得该值,并且可以使用该键来标识对象列表中的项目。