当绑定集合列表时,ListBox 显示 (Collection) 而不是对象的 ToString()
本文关键字:对象 ToString 绑定 Collection 列表 ListBox 显示 集合 | 更新日期: 2023-09-27 17:55:49
我有一个ListBox,它绑定到A类元素列表的实例,这是一个集合。
class A : List<B>
{
public override ToString()
{
return "A";
}
}
class C
{
List<A> list;
}
列表框:
<ListBox ItemsSource="{Binding list}"></ListBox>
运行应用程序时,每个项目都显示"(集合)"
我该怎么做才能使每个项目显示"A"而不是"收藏"?
ItemsSource 期望该属性是 IEnumerable,因此它绑定到集合的内容,而不是直接绑定到 List 对象。
我该怎么做才能让每个项目都显示出来 "A"而不是"集合"?
您需要重写列表项 (B) 上的 ToString
方法,而不是列表本身 (A)。
public class B
{
public override ToString()
{
return "A";
}
}
为了解决这个问题,我做了以下工作:
class A : IEnumerable
{
private List<B> _bList = new List<B>();
public override ToString()
{
return "A";
}
IEnumerator GetEnumerator()
{
return _bList.GetEnumerator();
}
public void Add(B element){
{
_bList.Add(element);
}
}
class C
{
List<A> list;
}