2010-02-17 24 views
1

我正在使用具有分层数据模板的TreeView绑定到视图模型层次结构,我的问题是我有不同类型的多个子集合(尽管相同的基类)。似乎使用模板绑定其中一个集合相对简单,但我正在努力解决如何执行这两个操作。TreeView使用分层数据模板绑定到不同的集合

class ParentViewModel 
{ 
    List<FooViewModel> FooCollection {get; set;} 
    List<BarViewModel> BarCollection {get; set;} 
} 

这是什么样的我想要实现的,但不知道是否有一个简单的方法来做到这一点:

http://www.codeplex.com/ComplexDataTemplates

回答

2

有没有办法,我知道的。当我需要做的这一点,我已经添加另一个属性到视图模型,所谓的说,孩子,它汇集了两个集合到一个:

public IEnumerable<ViewModel> Children 
{ 
    get 
    { 
     foreach (FooViewModel foo in FooCollection) yield return foo; 
     foreach (BarViewModel bar in FooCollection) yield return bar; 
    } 
} 
0

如果你的不同集合只是在根节点上,你可以添加多个树视图,并将每个根绑定到不同的集合。

Alternativeley您可以在HierarchicalDataTemplate中添加多个树视图并为每个树视图指定单独的绑定。

我不确定这是否会帮助您的具体情况,但是我个人而言,我使用的是菜单系统的树视图,它绑定到completeley不同的菜单选项。

相关问题