如何在绑定ItemsSource的ListBox中显示子元素的属性?

本文关键字:显示 元素 属性 ListBox 绑定 ItemsSource | 更新日期: 2023-09-27 18:07:10

我不明白,考虑下面的代码:

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

ArticleCategories是我的数据库中包含2个外键的表,1到Article, 1到Categories,因此ArticleCategories是包含ArticlesCategories的列表。

我想显示当前文章(CurrentArticle)在这个列表框中有哪些类别,我不知道如何这样做。我想为ListBox中的每个Category显示Category.Name

现在,列表框显示"Data"。ArticleCategory"因为它不知道如何显示。

我试过DisplayMemberPath="Category.Name",但没有成功。

我需要使用某种类型的数据模板,如果是,如何?

谢谢。

如何在绑定ItemsSource的ListBox中显示子元素的属性?

DisplayMemberPath不是添加绑定的字段,它只是给定Item上的属性名称。DisplayMemberPath="Name"应该足够了

你不需要绑定:

DisplayMemberPath="Category.Name"
编辑:既然你将ItemsSource绑定到CurrentArticle.ArticleCategories,我假设你的列表框的项目是Category类型的对象?在这种情况下,路径应该只是"Name",而不是"Category.Name"。

您可以设置列表框。ItemTemplate加上一个你喜欢的数据模板:http://msdn.microsoft.com/en-us/library/system.windows.controls.itemscontrol.itemtemplate.aspx