2010-02-17 46 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不同的菜單選項。

相關問題