我有一个集合
Dictionary<string, List<Manager>> Stuff;
Manager是一个带有一些属性的类。 我想要将这个字典绑定到TreeView或者ListView上,如下所示:
使用Key作为标题,然后将Manager列表作为子节点。例如:
- Director(它是字典中的键)
- John(它是Manager.Name属性)
- Steve
- Owner
- Jack
我尝试了以下代码:
<TreeView ItemsSource="{Binding Stuff}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate>
<TextBlock Foreground="Red" Text="{Binding Key}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
它显示了标题,但我不知道如何进一步处理。或者也许更好的方法是改变收集方式并以其他方式绑定它。
编辑
我用这个字典不必要地复杂化了工作。我创建了一个类Stuff
,其中包含属性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>
所以,在这种情况下使用字典并不是最好的选择。