在树视图中显示一个简单的结构

Display a simple structure in a treeview

我试图在树视图中显示此结构:一个产品有一个 TreeViewItem,每个 TreeViewItem 本身可能有一个 TreeViewItems 列表:

class Product {
    public string Name {get;set;}
    public TreeViewItem Item {get; set;}
}

class TreeViewItem {
    public string Name {get; set;}
    public List<TreeViewItem> Subitems {get;set;}
}

我试过这个,我认为它会起作用:

    <TreeView ItemsSource="{Binding Product.Item}">

        <TreeView.Resources>
            <HierarchicalDataTemplate DataType="{x:Type DataModel:TreeViewItem}">
                <TextBlock Text="{Binding Name}"></TextBlock>
            </HierarchicalDataTemplate>
        </TreeView.Resources>

    </TreeView>

但它什么也没显示。我已经尝试了一段时间,但感到迷茫,非常感谢您的帮助。

您分配给 TreeView.ItemsSource 的值必须实现 IEnumerable 并且您还需要在 HierarchicalDataTemplate

上指定 ItemsSource
class Product {
    public string Name {get;set;}
    public TreeViewItem Item {get; set;}
    public IEnumerable<TreeViewItem> Items { get { return new[] { item }; }
}

<TreeView ItemsSource="{Binding Product.Items}">

        <TreeView.Resources>
            <HierarchicalDataTemplate DataType="{x:Type DataModel:TreeViewItem}" ItemsSource="{Binding SubItems}">
                <TextBlock Text="{Binding Name}"></TextBlock>
            </HierarchicalDataTemplate>
        </TreeView.Resources>

    </TreeView>