Отслеживание элемента в списке - PullRequest
1 голос
/ 17 мая 2009

Я новичок .net начинаю один проект для удовольствия. Я использую список, заполненный некоторыми названиями городов, чтобы пользователь мог выбрать один. У каждого городского класса есть имя и UID. Как я узнаю, на какого пользователя города нажали? Очевидно, я могу получить текст выбранного элемента, просмотреть список городов и найти один по имени, но это кажется глупым.

Есть ли эквивалент MFC SetItemDataPtr типа вещи или что самый распространенный способ сделать это?

Ответы [ 4 ]

3 голосов
/ 17 мая 2009

Если вы ссылаетесь на WinForms ListBox, это можно сделать следующим образом.

Вместо установки Items из ListBox для массива / набора строк (как я полагаю, вы делаете в настоящее время), вы могли бы вместо этого установить его в коллекцию определенного пользователем типа (City в вашем случае), а затем используйте свойство DisplayMember (задайте Name или любое другое свойство вашего класса City, которое вы хотите отобразить), чтобы каждый элемент в ListBox на самом деле к нему можно обращаться как к определенному пользователем City объекту, пока он все еще отображается своим свойством Name.

1 голос
/ 18 мая 2009

Я бы использовал ListView (в режиме подробностей) вместо ListBox. Тогда вы можете использовать свойство Tag ListViewItem, которое эквивалентно SetItemDataPtr MFC.

0 голосов
/ 17 мая 2009

Вы можете заполнить ListBox собственным типом элемента, поскольку он принимает Object, предпочтительно реализуя метод ToString(). Это может быть объект со свойствами ID и Name, поэтому к ним можно получить доступ с помощью свойства SelectedItem ListBox.

0 голосов
/ 17 мая 2009

Вы можете получить выбранный пользователем товар, используя следующий код:

list1.SelectedItem;

//text -> list1.SelectedItem.Text
//value-> list1.SelectedItem.Value
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...