我正在尝试使用HierarchicalDataTemplate将复杂数据结构绑定到WPF TreeView。数据集合作为MyObject的IList存储在我的ViewModel中 - MyObject有几个属性,其中几个属于自己的列表。
我想要实现的输出是:
+ MyObject 1 <br>
+ List1 <br>
- List 1 Object 1 <br>
- List 1 Object 2 <br>
+ List2 <br>
- List 2 Object 1 <br>
- List 2 Object 2 <br>
+ MyObject 2 <br>
+ List1 <br>
- List 1 Object 1 <br>
- List 1 Object 2 <br>
+ List2 <br>
- List 2 Object 1 <br>
- List 2 Object 2 <br>
然而,我似乎无法获得我见过的几个地方的复合收藏品 -
答案 0 :(得分:3)
我刚刚做了类似的事情。遗憾的是,您无法直接执行此操作,因为TreeViewItem仅接受其ItemsSource的一个集合。
我所做的是创建一个以TreeView所需方式公开内容的模型。
public class MyObjectWrapper
{
public MyObject Target {get;set;}
public IEnumerable MyLists
{
get
{
yield return Target.List1;
yield return Target.List2;
}
}
}
其中MyObject定义为:
public class MyObject
{
public List1CollectionType List1 {get;private set;}
public List2CollectionType List2 {get;private set;}
}
您的绑定是
你需要一个用于MyObjectWrapper,List1CollectionType和List2CollectionType的DataTemplate。