为什么我的树视图只显示一层深?

Why my treeview shows only one level deep?

我想创建分层树。我遵循了 here 的每一步,但由于某种原因,它只显示了一层深度。 这是我得到的: 可能是什么原因?

XAML

<TreeView SelectedItemChanged="TreeView_SelectedItemChanged" ItemsSource="{Binding Items}">
    <TreeView.ItemTemplate>
        <HierarchicalDataTemplate ItemsSource="{Binding Children}" DataType="{x:Type local:MyClass}">
            <TextBlock Foreground="Red" Text="{Binding Name}" />
            <HierarchicalDataTemplate.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Name}" MouseLeftButtonUp="TreeViewItem_MouseLeftButtonUp"/>
                </DataTemplate>
            </HierarchicalDataTemplate.ItemTemplate>
        </HierarchicalDataTemplate>
    </TreeView.ItemTemplate>
</TreeView>

VIEWMODEL

public class MyClass
{
    public string Name { get; set; }
    public List<MyClass> Children { get; set; }
}

public class MyViewModel
{
    private List<MyClass> _items;
    public List<MyClass> Items
    {
        get
        {
            return _items;
        }
    }

    public MyViewModel()
    {
        _items = new List<MyClass>();
        _items.Add(new MyClass
        {
            Name = "1",
            Children = new List<MyClass>
            {
                new MyClass
                {
                    Name = "1_1",
                    Children = new List<MyClass>
                    {
                        new MyClass
                        {
                            Name = "1_1_1"
                        },
                        new MyClass
                        {
                            Name = "1_1_2"
                        }
                    }
                },
                new MyClass
                {
                    Name = "1_2"
                }
            }
        });
    }
}

您将模板定义为正好两层深,因此您将获得两层树视图。这是因为您明确声明 HeirarchicalDataTemplateItemTemplate 应该是没有 children.

DataTemplate

我不确定您想要的模板应该是什么,但是如果您删除该内部模板,您应该可以显示所有项目。或者,您也可以将内部模板设为 HeirarchicalDataTemplate.