2016-02-07 37 views
0

我完全是WPF的新手,需要你的幫助。我遵循很多教程,但沒有任何作品。WPF Treeview爲每個深度的不同集合

我有兩個ObserveableLists L1和L2結合,我想archiev: 深度1 - 第一個列表,爲每個孩子清單2.

  • L1.1
    • L2。 1
    • L2.2
    • L2.3
  • L1.2
    • L2.1
    • L2.2
    • L2.3
  • L1.3
    • L2.1
    • L2.2
    • L2.3

更新07年2月16日 - 16:44

我第一次嘗試:

 <TreeView Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Row="1" Margin="10" ItemsSource="{Binding orderCities}"> 
     <TreeView.Resources> 
      <DataTemplate DataType="{x:Type model:city}"> 
       <StackPanel Orientation="Horizontal"> 
        <TextBlock Text="{Binding name}" /> 
       </StackPanel> 
      </DataTemplate> 
      <HierarchicalDataTemplate ItemsSource="{Binding products}" DataType="{x:Type model:Product}"> 
       <StackPanel Orientation="Horizontal"> 
        <TextBlock Text="{Binding name}" /> 
       </StackPanel> 
      </HierarchicalDataTemplate> 
     </TreeView.Resources> 
    </TreeView> 

我的第二次嘗試:定義兩個的DataTemplates如何處理我的類型:

<UserControl.Resources> 
    <HierarchicalDataTemplate DataType="{ x:TypeExtension model:city }" ItemsSource="{Binding orderCities}"> 
     <StackPanel> 
      <TextBlock Text="{Binding name}" /> 
      <!-- Here embed Product Type (Dont know how)--> 
     </StackPanel> 

    </HierarchicalDataTemplate> 
    <HierarchicalDataTemplate DataType="{ x:TypeExtension model:Product }" ItemsSource="{Binding products}"> 
     <StackPanel Orientation="Horizontal"> 
      <TextBlock Text="{Binding name}" /> 
      <TextBlock Text=" - " /> 
      <TextBox Text="1" /> 
     </StackPanel> 
    </HierarchicalDataTemplate> 
</UserControl.Resources> 

並測試這兩個模板,並得到正確的設計。

<TreeView ItemsSource="{Binding orderCities}" /> 
<TreeView ItemsSource="{Binding orderCities}" /> 
+0

首先發布你所做的事。閱讀如何發佈[mcve]求助 –

回答

0

樹視圖本身不會幫助你在這裏。您必須實際創建要顯示的數據,即樹視圖不會「擴大」這兩個列表。

第一個列表中的每個元素當然可以在其子屬性中返回第二個列表的同一個實例。你可能想看看this codeproject article,這是相當古老的,但很好的介紹如何使用wpf樹視圖。

相關問題