列表框显示(集合),而不是对象的ToString()当集合列表绑定
问题描述:
我有一个列表框绑定到类A的元素列表的一个实例,这是一个集合。列表框显示(集合),而不是对象的ToString()当集合列表绑定
class A : List<B>
{
public override ToString()
{
return "A";
}
}
class C
{
List<A> list;
}
列表框:
<ListBox ItemsSource="{Binding list}"></ListBox>
当应用程序运行时,每一个项目显示 “(集合)”
我能做些什么,使每一个项目显示 “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;
}
答
ItemsSource期望该属性为IEnumerable,因此它直接绑定到集合的内容而不是List对象。
答
我该怎么做才能让每个项目显示 “A”而不是“Collection”?
你需要重写的列表项(B)不列表本身(一)ToString
方法。
public class B
{
public override ToString()
{
return "A";
}
}
+0
列表框中的每个项目都绑定到A类的一个实例。 A是B对象的集合。 我的目标是绑定对象列表框的列表,让每一个项目显示例如: “项包含30个B对象” “项包含14个B对象” 代替该每个项目显示“(集合) “ – Damian 2011-05-11 11:38:24
“绑定” 不是一个单词。 – 2011-05-10 22:55:15