C# 使用列表框确定选择了哪个对象
我有一个对象数组,例如人和关于他们的信息。我如何确定在列表框中选择了谁,其中只显示了他们的名字和姓氏?是否可能以某种方式将列表框中的项目与数组中的项目链接起来?显然,我不能依赖SelectedIndex,因为当列表框中的名称被过滤时,它就不再起作用了 在我的应用程序中,我有一个列表框,其中有人的姓名,当我单击列表框中的一个人时,我希望看到他们的详细信息(地址/contacs/misc)。问题是当两个人的名字相同时。你可以这样用。。。如果需要,您可以创建一个新属性来连接名字和姓氏,并将其用作DisplayMemberC# 使用列表框确定选择了哪个对象,c#,visual-studio-2008,select,listbox,C#,Visual Studio 2008,Select,Listbox,我有一个对象数组,例如人和关于他们的信息。我如何确定在列表框中选择了谁,其中只显示了他们的名字和姓氏?是否可能以某种方式将列表框中的项目与数组中的项目链接起来?显然,我不能依赖SelectedIndex,因为当列表框中的名称被过滤时,它就不再起作用了 在我的应用程序中,我有一个列表框,其中有人的姓名,当我单击列表框中的一个人时,我希望看到他们的详细信息(地址/contacs/misc)。问题是当两个人的名字相同时。你可以这样用。。。如果需要,您可以创建一个新属性来连接名字和姓氏,并将其用作Dis
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;
我建议在对象列表中添加一个唯一的键。然后,您就可以使用unique键作为listitems的值,您也可以在选择某个项目时获得该值,并可以使用该值来标识对象列表中的项目。您是否可以将对象本身放入ListBox?是和否,如果您直接向ListBox添加对象,ListBox将调用ToString()方法,用于给定对象。既然我已经重写了这个函数,它将只显示第一个和最后一个名字,这似乎是可行的。。。我会在早上退房。是的,谢谢你,这很有效。。。你知道我怎么过滤那些人吗?比如只显示名字以“Pe”开头的人。我绕过了搜索功能:)