Zer*_*rbu 3 .net wpf treeview xaml hierarchicaldatatemplate
我需要创建一个具有无限父子层次结构的 TreeView。TreeView 需要绑定到名为 的列表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>
Run Code Online (Sandbox Code Playgroud)
它有效,但问题是,它只深入三层。我应该改变什么才能使其无限?
如果它很重要,我将使用 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>
Run Code Online (Sandbox Code Playgroud)
注意childType应该是你的树由什么类组成。
重要的部分是DataType="{x:Type childType}"确保所有孩子(和孙子等)都使用此数据模板,并且它为您处理它的层次结构方面
| 归档时间: |
|
| 查看次数: |
1670 次 |
| 最近记录: |