Определение того, какой объект был выбран, используя список - PullRequest
2 голосов
/ 29 января 2010

У меня есть массив объектов, например, люди и информация о них.Как я могу определить, кто был выбран в списке, где отображаются только их имя и фамилия?Можно ли как-то связать элемент в списке с элементом в массиве?Очевидно, я не могу положиться на SelectedIndex, потому что, когда имена в списке отфильтрованы, он просто больше не работает.

В моем приложении у меня есть список, где указаны имена людей и когда я нажимаю на одинчеловек в списке я хочу увидеть их detais (адрес / контакт / разное).И проблема в том, что два человека имеют одно и то же имя.

Ответы [ 2 ]

3 голосов
/ 29 января 2010

Вы можете использовать ListBox.SelectedItem следующим образом ... Если вы хотите, вы можете создать новое свойство для объединения имен и фамилий и использовать его в качестве 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;
0 голосов
/ 29 января 2010

Я бы предложил добавить уникальный ключ в ваш список объектов. Тогда вы сможете использовать уникальный ключ в качестве значения для элементов списка, которые вы также можете получить при выборе элемента и которые можно использовать для идентификации элемента в списке объектов.

...