gpt4 book ai didi

.net - 如何使用数据绑定(bind)在 WPF 中创建无限深度的 TreeView?

转载 作者:行者123 更新时间:2023-12-05 03:11:41 25 4
gpt4 key购买 nike

我需要创建一个具有无限父子层次结构的 TreeView。 TreeView 需要绑定(bind)到名为 ResourceList 的列表,并从名为 Children 的列表中提取其子资源。所有项目都是同一类型。

这是我目前拥有的 XAML 代码:

    <TreeView ItemsSource="{Binding ResourceList}" Grid.Column="0" Grid.Row="2" x:Name="ResourcesTree" SelectedItemChanged="ResourcesTree_OnSelectedItemChanged" Margin="0,4,0,0">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<TextBlock Text="{Binding Name}" />
<HierarchicalDataTemplate.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<TextBlock Text="{Binding Name}" />
<HierarchicalDataTemplate.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}" />
</DataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>

它有效,但问题是,它只深入了三个层次。我应该更改什么以使其无限?

以防万一,我使用 C# 和 .NET 作为代码隐藏。

最佳答案

你的 Treeview 应该是这样的:

<TreeView ItemsSource="{Binding ResourceList}" Grid.Column="0" Grid.Row="2" x:Name="ResourcesTree" SelectedItemChanged="ResourcesTree_OnSelectedItemChanged" Margin="0,4,0,0">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type childType}" ItemsSource="{Binding Children}">
<TextBlock Text="{Binding Name}" />
</HierachicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>

注意 childType 应该是你的树由什么类组成。

重要的部分是 DataType="{x:Type childType}",它确保所有子级(和孙级等)都使用此数据模板,并处理它的层次结构方面你

关于.net - 如何使用数据绑定(bind)在 WPF 中创建无限深度的 TreeView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36342062/

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