我似乎无法弄清楚如何让TreeView显示我检查过的列表,但是无法找到相同的场景,叶子似乎总是对象而不是简单的字符串 . 我无法弄清楚HierarchicalDataTemplate和DataTemplate的正确组合以使其工作 . 使用以下对象 . 绑定发生我只看到第一级而不是叶子 .

public class Trunk
    {
    public Trunk(string tn)
    {
        TrunkName = tn;
        Branches = new List<Branch>();
    }
    public List<Branch> Branches { get; set; }

    public string TrunkName { get; set; }
}
public class Branch
{
    public Branch(string bn)
    {
        BranchName = bn;
        Leaves = new List<string>();
    }
    public List<string> Leaves { get; set; }

    public string BranchName { get; set; }

}



Tree = new Trunk("Root")
    {
        Branches =
            {
                new Branch("Branch1"){Leaves = {"Leaf1","Leaf2"}},
                new Branch("Branch2"){Leaves = {"Leaf3","Leaf4"}}
            }

    };

以及以下模板

<TreeView ItemsSource="{Binding Trees}" >
    <TreeView.ItemTemplate>
    <HierarchicalDataTemplate  ItemsSource="{Binding Branches}">
        <TextBlock Text="{Binding Path=TrunkName}" />
            <HierarchicalDataTemplate.ItemTemplate >
                <DataTemplate>
                    <TextBlock Text="{Binding BranchName}"/>
                </DataTemplate>
            </HierarchicalDataTemplate.ItemTemplate>
        </HierarchicalDataTemplate>
    </TreeView.ItemTemplate>
</TreeView>

编辑:当然在花了几天试图弄清楚什么不是点击之后 . 在张贴求助后我想出来了 .
PS TreeView ItemsSource是从绑定到Window DataContext的ViewModel设置的 .

<TreeView ItemsSource="{Binding Trees}" >
    <TreeView.ItemTemplate>
    <HierarchicalDataTemplate  ItemsSource="{Binding Branches}">
        <TextBlock Text="{Binding Path=TrunkName}" />
            <HierarchicalDataTemplate.ItemTemplate >
                <HierarchicalDataTemplate ItemsSource="{Binding Leaves}">
                    <TextBlock Text="{Binding BranchName}"/>
                    <HierarchicalDataTemplate.ItemTemplate >
                        <DataTemplate>
                            <TextBlock Text="{Binding }"/>
                        </DataTemplate>
                    </HierarchicalDataTemplate.ItemTemplate>
                </HierarchicalDataTemplate>
            </HierarchicalDataTemplate.ItemTemplate>
        </HierarchicalDataTemplate>
    </TreeView.ItemTemplate>
</TreeView>