我尝试定义ListBox,显示我在某个集合中定义的所有元素。
代码:
public class Element
{
private string _name;
public string Name { get { return _name; } }
public Element(string name)
{
_name = name;
}
}
public class ElementCollection
{
public List<Element> Elements
{
get;
set;
}
}
<ListBox ItemsSource="{Binding ElementCollection}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Element.Name}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
我做了'DataContext'并且所有数据都在正确的位置。
我做错了什么?
答案 0 :(得分:1)
您是binding
持有该集合的类,而不是实际的集合 - 请尝试将ItemSource
更改为{Binding ElementCollection.Elements}
。此外,您的Textbox
已绑定到Element.Name
,您不需要,因为它会在您的项目中查找Name
属性:
<ListBox ItemsSource="{Binding ElementCollection.Elements}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Name}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>