.net 如何使用数据绑定在WPF中创建具有无限深度的树视图?
我需要创建一个具有无限父子层次结构的树视图。树视图需要绑定到名为.net 如何使用数据绑定在WPF中创建具有无限深度的树视图?,.net,wpf,xaml,treeview,hierarchicaldatatemplate,.net,Wpf,Xaml,Treeview,Hierarchicaldatatemplate,我需要创建一个具有无限父子层次结构的树视图。树视图需要绑定到名为ResourceList的列表,并从名为Children的列表中提取其子资源。所有项目的类型都相同 以下是我到目前为止的XAML代码: <TreeView ItemsSource="{Binding ResourceList}" Grid.Column="0" Grid.Row="2" x:Name="ResourcesTree" SelectedItemChanged="ResourcesTree_OnSelecte
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 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}”
,它确保所有子代(和孙辈等)使用此数据模板,并为您处理其层次结构方面的问题谢谢!成功了!结果证明这很简单,所以我很惊讶我在谷歌搜索时没有得到正确的结果。是的,我第一次尝试使用树状视图时,我花了很长时间才找到答案。WPF为你做所有的重担,很好