2010-07-14 95 views
1

我想使用HierarchicalDataTemplate將TreeView映射到集合。該集合包含一個包含其自身的子實體(多對多關係)的對象,然後使用常規的一對多關係下到另一個對象。 我使用如下:WPF Treeview HierarchicalDataTemplate MTM關係

<HierarchicalDataTemplate DataType="{x:Type src:Organization}" ItemsSource="{Binding Path=ChildOrgs}" > 
      <StackPanel> 
       <TextBlock Text="{Binding Path=Name}"/> 
      </StackPanel> 
     </HierarchicalDataTemplate> 
     <HierarchicalDataTemplate DataType="{x:Type src:Organization}" ItemsSource="{Binding Path=Units}" > 
      <StackPanel> 
       <TextBlock Text="{Binding Path=Name}"/> 
      </StackPanel> 
</HierarchicalDataTemplate> 

我使用的是「ChildOrgs」集合檢索從組織「Organzation」孩子的。這工作完美。我的問題是,我希望樹狀圖繼續鑽入組織單位集合。但我得到以下錯誤: 「項目已添加...」在「組織」的實體......

將任何並欣賞創意, 非常感謝,

回答

1

開關的第一定義:

<HierarchicalDataTemplate DataType="{x:Type src:Organization}" 
    ItemsSource="{Binding Path=ChildOrgs}" 
    ItemTemplate="{DynamicResource ChildOrgTemplate}"> 
    <StackPanel> 
     <TextBlock Text="{Binding Path=Name}"/> 
    </StackPanel> 
</HierarchicalDataTemplate> 
<HierarchicalDataTemplate x:Key="ChildOrgTemplate" 
    ItemsSource="{Binding Path=Units}"> 
    <StackPanel> 
     <TextBlock Text="{Binding Path=Name}"/> 
    </StackPanel> 
</HierarchicalDataTemplate> 
+0

謝謝!您的解決方案是正確的!我只需要將DynamicResource更改爲staticResource,因爲我有異常。當然,我必須先找到ChildOrgTemplate。現在它完美的工作!謝謝。 – OrPaz 2010-07-14 14:54:05