Обычно вы устанавливаете DataSource комбинированного списка, DisplayMember - строку имени свойства для отображения, а ValueMember - строку имени свойства, которое будет использоваться в качестве значения (при вызове selectedValue):
public class Person{
public string Name { get; set; }
public int Id { get; set; }
}
var peeps = new List<Person>(){
new Person(){ Name="John",Id=1 },
new Person(){ Name="Jane",Id=2 }
};
combo.DataSource = peeps;
combo.DisplayMember = "Name";
combo.ValueMember = "Id";
Выберите «Jane» в комбо, и (int)combo.SelectedValue
будет 2
Если вы не установите элементы display и value, комбо будет просто вызывать ToString для каждогоэлемент в списке и использовать его в качестве отображаемого текста, а весь объект в качестве значения.Без переопределенной ToString по умолчанию просто возвращается тип Name.Следовательно, вы, вероятно, видите список, полный «YourNamespace.Person» или эквивалентного