Wpf 修复了HierarchycalDataTemplate中的项目
我需要在WPF中创建一个树状视图,如下所示:Wpf 修复了HierarchycalDataTemplate中的项目,wpf,hierarchicaldatatemplate,Wpf,Hierarchicaldatatemplate,我需要在WPF中创建一个树状视图,如下所示: <HierarchicalDataTemplate DataType="{x:Type local:GroupClass}"> <HierarchicalDataTemplate.ItemsSource> <MultiBinding Converter="{StaticResource converter-that-returns-lists-as-is}">
<HierarchicalDataTemplate DataType="{x:Type local:GroupClass}">
<HierarchicalDataTemplate.ItemsSource>
<MultiBinding Converter="{StaticResource converter-that-returns-lists-as-is}">
<Binding Path="Users"/>
<Binding Path="Permissions"/>
</MultiBinding>
</HierarchicalDataTemplate.ItemsSource>
<TextBlock Text="{Binding Path=Name}"/>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate x:Key="IEnumerable[UserClass]" ItemsSource="{Binding Path=.}">
<TextBlock Text="Users"/>
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type local:UserClass}">
<TextBlock Text="{Binding Path=Name}"/>
</DataTemplate>
<HierarchicalDataTemplate x:Key="IEnumerable[PermissionClass]" ItemsSource="{Binding Path=.}">
<TextBlock Text="Permissions"/>
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type local:PermissionClass}">
<TextBlock Text="{Binding Path=Name}"/>
</DataTemplate>
- 行政主任(小组)
- 用户(固定节点)
- 艾丽斯·亚当斯(用户)
- 鲍勃·布朗(用户)
- 权限(固定节点)
- 删除(权限)
- 更新(权限)
- 用户(固定节点)
- 嘉宾(团体)
- 用户(固定节点)
- 查理·克拉克(用户)
- 权限(固定节点)
- 查看(权限)
- 用户(固定节点)
- 名称(字符串)
- 用户(列表)
- 权限(列表)
<TreeView ItemsSource="{Binding Groups}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Users}">
<TextBlock Text="{Binding GroupName}" />
<HierarchicalDataTemplate.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding UserName}" />
</DataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
但是我需要添加2个节点(用户和权限),它们将展开以显示2个列表
非常感谢您的任何建议…您可以使用带转换器的多重绑定来执行以下操作:
<HierarchicalDataTemplate DataType="{x:Type local:GroupClass}">
<HierarchicalDataTemplate.ItemsSource>
<MultiBinding Converter="{StaticResource converter-that-returns-lists-as-is}">
<Binding Path="Users"/>
<Binding Path="Permissions"/>
</MultiBinding>
</HierarchicalDataTemplate.ItemsSource>
<TextBlock Text="{Binding Path=Name}"/>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate x:Key="IEnumerable[UserClass]" ItemsSource="{Binding Path=.}">
<TextBlock Text="Users"/>
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type local:UserClass}">
<TextBlock Text="{Binding Path=Name}"/>
</DataTemplate>
<HierarchicalDataTemplate x:Key="IEnumerable[PermissionClass]" ItemsSource="{Binding Path=.}">
<TextBlock Text="Permissions"/>
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type local:PermissionClass}">
<TextBlock Text="{Binding Path=Name}"/>
</DataTemplate>
转换器只会返回未修改为
IEnumerable
的列表。我没有使用转换器,但在我的ViewModel上暴露了另一个属性,该属性是权限和用户容器的IEnumerable,但您的回答让我走上了正确的方向-谢谢@Darren-你能分享你的解决方案吗?@Darren我意识到这是一个2年多的老问题,但是如果你能提供你在这个问题上使用的解决方案,它可能是有益的。我和你有一个类似的问题,我很好奇你做了什么