Я использую listBox.ItemsSource = e.Result.Persons, который представляет собой набор людей.Окно списка показывает реальные имена объектов, когда я хотел бы, чтобы оно отображало имя каждого объекта-человека.Как я могу это сделать?
listBox.ItemsSource = e.Result.Persons
использовать ListBes ItemTemplate. как то так.
<ListBox> <ListBox.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding FirstName}"/> </ListBox.ItemTemplate> </DataTemplate> </ListBox>
Можно переопределить метод ToString () объекта Persons, чтобы он отображал имя человека.
Или используйте выделенное свойство «DisplayMemberPath» , которое делает то, что вам нужно, без каких-либо побочных эффектов (или дополнительной разметки):
<ListBox DisplayMemberPath="FirstName" />
Для более сложных представлений элементов используйте шаблоны (см. Ниже).
В дополнение к методу привязки, указанному в другом ответе, вы можете просто связать его следующим образом:
listBox.ItemsSource = e.Result.Persons.Select(d => new { FirstName });