Да, элементы ListBox имеют тип object
, и вы можете назначить им любой объект, поэтому создайте класс следующим образом:
public class ListItem
{
public string Name {get; set;}
public int Value {get; set;}
public override string ToString()
{
return Name;
}
}
Теперь вы можете добавлять элементы ListBox следующим образом:
listbox.Items.Add(new ListItem { Name = "Test1", Value = 2});
Когда выбран элемент ListBox, вы можете получить его значение, например:
var value = ((ListItem)listbox.SelectedItem).Value;
Обратите внимание, что поскольку ListBox использует свой метод Items .ToString()
для создания отображаемых текстов, вам необходимо переопределить егоToString()
метод, подобный этому:
public override string ToString()
{
return Name;
}
В противном случае он покажет имя класса вместо желаемого значения.