Как отобразить свойство из дочернего элемента в ListBox, связанном с ItemsSource? - PullRequest
3 голосов
/ 01 сентября 2011

Я не могу понять это, рассмотрим следующий код:

 <ListBox Width="200" 
          ItemsSource="{Binding CurrentArticle.ArticleCategories}" 
          DisplayMemberPath="{Binding Category.Name}">
  </ListBox>

ArticleCategories - это таблица в моей базе данных, которая содержит 2 внешних ключа, от 1 до Article и от 1 до Categories, поэтому ArticleCategories - это список, содержащий Articles и Categories.

Я хочу показать, какие категории текущей статьи (CurrentArticle) есть в этом списке, и я не могу понять, как это сделать. Я хочу показать Category.Name для каждого Category в ListBox.

В данный момент в списке отображается « Data.ArticleCategory », потому что он не знает, как его отобразить.

Я пытался DisplayMemberPath="Category.Name" безуспешно.

Нужно ли использовать какой-либо шаблон данных, если да, то как?

Спасибо.

Ответы [ 3 ]

4 голосов
/ 01 сентября 2011

DisplayMemberPath - это не поле, в которое вы добавляете привязку, это просто имя вашей собственности на данный элемент. DisplayMemberPath="Name" должно быть достаточно.

3 голосов
/ 01 сентября 2011

Вам не требуется привязка:

DisplayMemberPath="Category.Name"

РЕДАКТИРОВАТЬ: поскольку вы привязываете ItemsSource к CurrentArticle.ArticleCategories, я предполагаю, что элементы вашего ListBox являются объектами типа Category?в этом случае путь должен быть просто «Name», а не «Category.Name».

1 голос
/ 01 сентября 2011

Вы можете установить шаблон ListBox.ItemTemplate с таблицей данных, которая выглядит так, как вам нравится: http://msdn.microsoft.com/en-us/library/system.windows.controls.itemscontrol.itemtemplate.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...