2013-10-07 24 views
0

我需要在我的樹視圖中顯示來自兩個不同來源的項目。我怎樣才能做到這一點?具有多個ItemSources的TreeView

詳細信息: 商品來源A:此商品來源將有一個標題,n個子女,每個子女可以有多達32個子女。

商品來源B:此商品來源包含一個標題和n個子女。

我需要支持子對象和子對象的上下文菜單操作。

xaml代碼應該是什麼樣的,應該是我的類的結構?

我目前的結構只有一個的ItemSource和綁定代碼看起來像這樣

<TreeView.ItemTemplate> 
    <HierarchicalDataTemplate ItemsSource="{Binding Slash}"> 
     <StackPanel Orientation="Horizontal"> 
      <TextBlock Text="{Binding Name}"/> 
     </StackPanel> 
    <HierarchicalDataTemplate.ItemTemplate> 
     <DataTemplate DataType="{x:Type dt:Slash}"> 
      <StackPanel Orientation="Horizontal"> 
       <TextBlock Text="{Binding FullName}"/> 
      </StackPanel> 
     </DataTemplate> 
    </HierarchicalDataTemplate.ItemTemplate> 
    </HierarchicalDataTemplate> 
</TreeView.ItemTemplate> 

回答

0

你可以看看我貼在this topic 如果您有任何問題,只是問的答案;)

+0

我的問題是兩個項目源是不同類型的。因此添加一個類別並不能解決問題 – WAQ

+0

您是否試圖堆疊兩個treeview? – Daniel

+0

我不能這樣做。要求是僅使用一個電視控制來做到這一點 – WAQ

0

所有你需要做的就是把你的兩個集合放入一個'ObservableCollection collection and then綁定that to the TreeView.ItemsSource`屬性。

如果由於某種原因,您需要輸入集合,那麼您仍然有三個選項;要麼在兩個集合中分兩種類型的子類,並創建子類型的新集合;或者使它們都實現相同的接口並使用它作爲新集合的類型;或者擴展ObservableCollection以允許集合接受兩種類型的對象,同時仍然在每個輸入點檢查它們的類型。