ListBox.ItemsSource 的显示属性

Posted

技术标签:

【中文标题】ListBox.ItemsSource 的显示属性【英文标题】:Display properties of the ListBox.ItemsSource 【发布时间】:2010-12-12 03:55:09 【问题描述】:

我是 WPF 新手。我有一个 ListBox,它的 ItemSource 设置为 WorkItemCollection 的实例。 (WorkItem 对象的集合。)

显示列表时,它仅显示每个对象的类型 (Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItem)。有没有办法让列表显示 WorkItem.Title?

【问题讨论】:

感谢您的回答。我会在我正在做的应用程序中使用这两种方法! 【参考方案1】:

你有两个选择。

最简单的方法是将ListBox的DisplayMemberPath属性设置为“Title”。

如果您不仅要设置显示的内容,还要设置用于显示它的控件类型,那么您可以设置 ListBox 的 ItemTemplate

对于您的目标,我会推荐第一个选项。

【讨论】:

【参考方案2】:

您可以在ListBoxItemTemplate 属性上设置DataTemplate

<ListBox ItemSource="Binding">
  <ListBox.ItemTemplate>
    <DataTemplate DataType="tfs:WorkItem">
      <StackPanel>
        <TextBlock Text="Binding Title" />
        <!-- Others -->
      </StackPanel>
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>

【讨论】:

这是一种非常复杂的方式来完成 DisplayMemberPath 在一行中所做的事情。 @Ray 同意,只有在设置更复杂的 UI 时才使用它。

以上是关于ListBox.ItemsSource 的显示属性的主要内容,如果未能解决你的问题,请参考以下文章

将 UserControl ListBox ItemSsource 绑定到父 DataContext 时出错

怎么获取csharpsqlite数据库中表的数据

如果控件大小小于列表框大小,则无法禁用垂直滚动查看器

请问EPLAN的标题页的项目属性信息不能显示是为啥?请问怎么重新显示项目属性的信息?

win8.1 属性-共享:Windows无法显示此连接的属性。WMI信息可能损坏

在 JComboBox 中显示属性并注册另一个属性