2013-12-13 74 views
1

我有收集綁定詞典<字符串,列表<Class>>到TreeView控件

Dictionary<string, List<Manager>> Stuff; 

管理器類的一些屬性。 我想將此字典綁定到TreeView或ListView,如下所示:

作爲標題的關鍵字,然後是管理員列表作爲子項。例如:

  • 主任(從字典中它的鍵)
    • 約翰(它的屬性Manager.Name)
    • 史蒂夫
  • 所有者
    • 傑克

我想是這樣的:

<TreeView ItemsSource="{Binding Stuff}"> 
        <TreeView.ItemTemplate> 
         <HierarchicalDataTemplate> 
          <TextBlock Foreground="Red" Text="{Binding Key}" /> 
         </HierarchicalDataTemplate> 
        </TreeView.ItemTemplate> 
</TreeView> 

這表明我的標題,但我不知道如何進一步做到這一點。 或者,也許最好更改集合並以其他方式進行綁定。

編輯

我不必要地複雜這本詞典的工作。我創建了屬性爲string Name;List<Managers> Managers;的額外課程資料。使用它在主類爲ObservableCollection<Stuff> Stuff;,它正常工作與此XAML:

<TreeView ItemsSource="{Binding Stuff}"> 
        <TreeView.ItemTemplate> 
         <HierarchicalDataTemplate ItemsSource="{Binding Managers}"> 
          <TextBlock Foreground="Red" Text="{Binding Name}" /> 
          <HierarchicalDataTemplate.ItemTemplate> 
           <DataTemplate> 
            <TextBlock Text="{Binding Name}" /> 
           </DataTemplate> 
          </HierarchicalDataTemplate.ItemTemplate> 
         </HierarchicalDataTemplate> 
        </TreeView.ItemTemplate> 
</TreeView> 

所以是使用Dictionairy是不是最好在這種情況下。

回答

2

試試這個:

<TreeView ItemsSource="{Binding Stuff}"> 
    <TreeView.ItemTemplate> 
     <HierarchicalDataTemplate ItemsSource="{Binding Values}"> 
      <TextBlock Foreground="Red" Text="{Binding Key}" /> 
     </HierarchicalDataTemplate> 
    </TreeView.ItemTemplate> 
</TreeView> 

但是,我總是建議使用ObservableCollection<CustomDataType>ItemsSource,因爲它只是使整個工作更加簡單。有關HierarchicalDataTemplate的更多幫助,請參閱MSDN上的HierarchicalDataTemplate Class頁面。

+0

它不工作,這也說明我只是個按鍵,無需值,但NVM。我編輯了我的帖子。 – Powderek

3

試試這個:

<TreeView Name="treeView1" ItemsSource="{Binding Stuff}" > 
    <TreeView.ItemTemplate> 
     <HierarchicalDataTemplate ItemsSource="{Binding Path=Value}"> 
      <TextBlock Foreground="Red" Text="{Binding Path=Key}" /> 
      <HierarchicalDataTemplate.ItemTemplate> 
       <DataTemplate> 
        <TextBlock Text="{Binding Name}"/> 
       </DataTemplate> 
      </HierarchicalDataTemplate.ItemTemplate> 
     </HierarchicalDataTemplate> 
    </TreeView.ItemTemplate> 
</TreeView> 
相關問題