我正在使用带有分层数据模板的TreeView绑定到View Model层次结构,我的问题是我有多个不同类型的子集合(虽然相同的基类)。似乎使用模板绑定其中一个集合相对简单,但我很难弄清楚如何做到这两个。
class ParentViewModel
{
List<FooViewModel> FooCollection {get; set;}
List<BarViewModel> BarCollection {get; set;}
}
这是我想要实现的目标,但想知道是否有一种简单的方法可以实现:
答案 0 :(得分:2)
我无从知晓。当我需要这样做时,我已经向ViewModel添加了另一个属性,名为“Children”,它将两个集合聚合为一个:
public IEnumerable<ViewModel> Children
{
get
{
foreach (FooViewModel foo in FooCollection) yield return foo;
foreach (BarViewModel bar in FooCollection) yield return bar;
}
}
答案 1 :(得分:0)
如果您的不同集合仅在根节点上,则只需添加多个树视图,并将每个根绑定到不同的集合。
Alternativeley你可以在HierarchicalDataTemplate中添加多个树视图,并为每个树视图指定单独的绑定。
我不确定这是否会对您的具体情况有所帮助,但就个人而言,我正在使用菜单系统的树视图,它与不同的菜单选项绑定。