简单的嵌套TreeView Xaml结构?

我正在尝试构建一个包含三层的WPF TreeViewCountryReportTitle是一个字符串属性, CountryReportTitle是一个集合,都是从我的ViewModel公开的。 没有定义类层次结构。 这是我正在寻找的结构:

在此处输入图像描述

这是我尝试过的Xaml,但是我在运行时在Xaml中遇到exception:

 {"Item has already been added. Key in dictionary: 'DataTemplateKey(ISESApp.ViewModels.ReportViewModel)' Key being added: 'DataTemplateKey(ISESApp.ViewModels.ReportViewModel)'"} 

XAML:

                 

Local:是我的ViewModel的命名空间:

 xmlns:local="clr-namespace:MyApp.ViewModels" 

我做错了什么,这个问题的最佳方法是什么?

这是我对树视图的首选示例。

对树中的元素使用HierarchicalDataTemplate 。 请注意,有三个层,每个层都是自己的类型。 这是为了方便起见,但您可以定义一种类型,并为您的树使用一个模板或任何类型的混合。 具有不同类型表示树中的不同内容使得使用模板非常方便。

数据类

 public class ViewModel { public ObservableCollection ItemsA { get; set; } public ViewModel() { ItemsA = new ObservableCollection(new[]{ new ItemA{Name = "A one"}, new ItemA{Name = "A Two"}, new ItemA{Name = "A Three"}, }); } } public class ItemA { public ObservableCollection ItemsB { get; set; } public string Name { get; set; } public ItemA() { ItemsB = new ObservableCollection(new[]{ new ItemB{Name = "B one"}, new ItemB{Name = "B Two"}, new ItemB{Name = "B Three"}, }); } } public class ItemB { public ObservableCollection ItemsC { get; set; } public string Name { get; set; } public ItemB() { ItemsC = new ObservableCollection(new[]{ new ItemC{Name = "C one"}, new ItemC{Name = "C Two"}, new ItemC{Name = "C Three"}, }); } } public class ItemC { public string Name { get; set; } } 

和UI

                

为您提供简单的树视图

在此处输入图像描述

您需要在TreeView中绑定TreeView资源:

             

我认为您需要修改项目以将Treeview绑定到ViewModel而不是字符串列表

这是一个很好的例子