WPF数据绑定树视图列出怪异

时间:2011-01-31 21:54:06

标签: c# wpf list data-binding treeview

所以我在数据绑定方面遇到了一个奇怪的问题。我试图将List数据绑定到树视图,由于某种原因,我可以选择作为绑定的一部分创建的项目。

绑定来源:

<TreeView Name="paramTree" 
          BorderBrush="DarkSlateGray"
          Margin="0,0,0,1">
    <TreeViewItem Name="systemNode"
                  Header="System Info"
                  ItemsSource="{Binding}">
        <TreeViewItem.ItemTemplate>
            <DataTemplate>
                <TreeViewItem Header="{Binding}"/>
            </DataTemplate>
        </TreeViewItem.ItemTemplate>
    </TreeViewItem>
</TreeView>

代码背后:

private PropertyList sysList = new PropertyList(typeof(System.Environment));

public MainWindow()
{
    InitializeComponent();
    .
    .
    systemNode.DataContext = sysList;
}

class PropertyList : List<string>
{
    public PropertyList(Type t)
    {
        // Get properties of this type
        PropertyInfo[] propertyInfo = t.GetProperties();

        foreach (PropertyInfo property in propertyInfo)
        {
            Add(property.Name);
        }
    }
}

这将创建一个“System Info”节点的子树,其中包含System.Environment的所有属性,但是我无法单击任何新的TreeViewItems ...帮助?

1 个答案:

答案 0 :(得分:2)

只是从看这个我认为这是那个老问题,如果我错了就纠正我......

TreeView会自动围绕您的项目生成TreeViewItem。你的ItemTemplate应该是:

    <TreeViewItem.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding}"/>
        </DataTemplate>
    </TreeViewItem.ItemTemplate>