Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 修复了HierarchycalDataTemplate中的项目_Wpf_Hierarchicaldatatemplate - Fatal编程技术网

Wpf 修复了HierarchycalDataTemplate中的项目

Wpf 修复了HierarchycalDataTemplate中的项目,wpf,hierarchicaldatatemplate,Wpf,Hierarchicaldatatemplate,我需要在WPF中创建一个树状视图,如下所示: <HierarchicalDataTemplate DataType="{x:Type local:GroupClass}"> <HierarchicalDataTemplate.ItemsSource> <MultiBinding Converter="{StaticResource converter-that-returns-lists-as-is}">

我需要在WPF中创建一个树状视图,如下所示:

<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>
  • 行政主任(小组)
    • 用户(固定节点)
      • 艾丽斯·亚当斯(用户)
      • 鲍勃·布朗(用户)
    • 权限(固定节点)
      • 删除(权限)
      • 更新(权限)
  • 嘉宾(团体)
    • 用户(固定节点)
      • 查理·克拉克(用户)
    • 权限(固定节点)
      • 查看(权限)
我有一个组列表,每个组有3个属性:

  • 名称(字符串)
  • 用户(列表)
  • 权限(列表)
只显示用户或权限很容易:

        <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年多的老问题,但是如果你能提供你在这个问题上使用的解决方案,它可能是有益的。我和你有一个类似的问题,我很好奇你做了什么