2010-01-28 3 views
2

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

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

+2

Можете ли вы не просто поместить объекты в ListBox? –

+0

да и нет, если вы добавите объект непосредственно в список, список будет вызывать метод ToString() для данного объекта. И так как я обошел эту функцию, он просто покажет первое и последнее имя – Gabriel

ответ

3

Вы можете использовать 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

, похоже, это может сработать ... я выберусь утром. – Gabriel

+0

Да, спасибо, что это работает ... И у вас есть идея, как я могу отфильтровать этих людей? как показывают только лица, которые сначала начинают на «Пе». – Gabriel

+0

У меня есть функция поиска :) – Gabriel

0

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