看不到我的ListBox上的项目

时间:2015-08-15 12:40:43

标签: wpf listbox

我尝试定义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'并且所有数据都在正确的位置。

我做错了什么?

1 个答案:

答案 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>