无法在我的列表框中看到项目的名称,WPF,C#

Posted

技术标签:

【中文标题】无法在我的列表框中看到项目的名称,WPF,C#【英文标题】:Unable to see the name of items in my listbox, WPF, C# 【发布时间】:2021-06-27 15:19:42 【问题描述】:

我试图从 observablecollection 中获取数据到我的列表框中,但我没有显示项目的名称,而是得到 Namespace.ItemClass(在我的例子中,Retail_Items.RetailItem)。我附上了一张图片。我可能错在哪里? enter image description here

【问题讨论】:

您好,欢迎来到 SO!请更新您的帖子以包含您尝试过的实际代码,而不仅仅是图片。 【参考方案1】:

ListBoxItem 默认公开绑定到 ItemsSource 的值。 而且你可能绑定了List <RetailItem>形式的集合,所以Namespace被打印出来了。

和其他人的回答一样,如果绑定值是RetailItem等对象的形式,DisplayMemberPath可以指定一个具体的属性值作为输出名称。 这是因为如果内部存在 DisplayMemberPath,它会在 ListBoxItem 内动态创建 Binding

其实你可以直接从.Net Framework的开源中看到结构,它发布在微软的GitHub上。

我已经为你分发了一个使用 ListBox/ListBoxItem 的样式模板和 MVVM 结构的示例源到 GITHub,所以我希望它对你有帮助。?

?Sample Source

【讨论】:

【参考方案2】:

如果您想显示类中的多个字段,或者可能使用列表框上的 DisplayMemberPath 属性来引用相关字段,您应该考虑使用 DataTemplate。

【讨论】:

【参考方案3】:

将 listBox 的 DisplayMember 属性设置为“Name”(如果您希望显示 Name 属性)。

例如-

listBox.DisplayMember = "Name";

【讨论】:

以上是关于无法在我的列表框中看到项目的名称,WPF,C#的主要内容,如果未能解决你的问题,请参考以下文章

如何在 WPF 列表框中添加标题

从其他窗口将新项目添加到列表框

C#如何匹配两个列表框中的项目

无法连续两次从列表框中选择相同的项目 - windows phone 8 C#

WPF:仅当列表框中的一项被选中时才启用按钮

WPF 从列表框中拖动项目并放入文本框中