无法在我的列表框中看到项目的名称,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#的主要内容,如果未能解决你的问题,请参考以下文章