gpt4 book ai didi

wpf - HierarchicalDataTemplate 中的固定项

转载 作者:行者123 更新时间:2023-12-04 05:28:00 25 4
gpt4 key购买 nike

我需要在 WPF 中创建一个看起来像这样的 TreeView:

  • 管理员(组)
  • 用户 (固定节点)
  • Alice Adams(用户)
  • Bob Brown(用户)
  • 权限 (固定节点)
  • 删除(权限)
  • 更新(权限)
  • 嘉宾(团体)
  • 用户 (固定节点)
  • 查理克拉克(用户)
  • 权限 (固定节点)
  • 查看(权限)

  • 我有一个组列表,每个组有 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 个列表。

    任何建议非常感谢...

    最佳答案

    您可以使用带有转换器的 MultiBinding 来执行以下操作:

    <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<T> .

    关于wpf - HierarchicalDataTemplate 中的固定项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12976054/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com