WPF TreeView HierarchicalDataTemplate

简介: 原文 WPF TreeView HierarchicalDataTemplate   ...

原文 WPF TreeView HierarchicalDataTemplate

 
<StackPanel Margin="0,0,0,0">
            <StackPanel.Resources>
                <HierarchicalDataTemplate x:Key="MonTemp" DataType = "{x:Type local:MonthViewModel}" ItemsSource = "{Binding FileInfoViewModels}">
                    <TextBlock Text="{Binding MonthDescription}"/>
                    <HierarchicalDataTemplate.ItemTemplate>
                        <DataTemplate DataType="{x:Type local:FileInfoViewModel}">
                            <TextBlock Text="{Binding FileName}"/>
                        </DataTemplate>
                    </HierarchicalDataTemplate.ItemTemplate>
                </HierarchicalDataTemplate>

                <HierarchicalDataTemplate x:Key="YearTemp" DataType = "{x:Type local:YearViewModel}" ItemsSource = "{Binding MonthViewModels}" ItemTemplate="{StaticResource MonTemp}">
                    <TextBlock Text="{Binding YearDescription}"/>
                </HierarchicalDataTemplate>
            </StackPanel.Resources>

            <TreeView Height="100" Name="fileTree">
                <TreeView.Resources>
                    <Style TargetType="{x:Type TreeViewItem}">
                        <Setter Property="IsExpanded" Value="True"/>
                    </Style>
                </TreeView.Resources>
                <TreeViewItem ItemsSource="{Binding TreeViewModels}" Header="Back up View" ItemTemplate="{StaticResource YearTemp}"/>
            </TreeView>
        </StackPanel>

 


HierarchicalDataTemplate 的DataType是本层的绑定,而ItemsSource是绑定下层的对象集合,它只能使用两层集合,如MonTemp,如果要用到三层以上,需要两个HierarchicalDataTemplate,用ItemTemplate引用另外一个。

HierarchicalDataTemplate绑定后,子节点都是直接绑定DataSource的Object,并非TreeViewItem,所以要全部默认展开的话,要用TreeView.Resources设置Style.

目录
相关文章
WPF疑难问题之Treeview中HierarchicalDataTemplate多级样式
WPF疑难问题之Treeview中HierarchicalDataTemplate多级样式
302 0
|
2月前
|
开发框架 前端开发 JavaScript
循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(5) -- 树列表TreeView的使用
循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(5) -- 树列表TreeView的使用
|
数据可视化 C#
WPF技术之TreeView控件
WPF TreeView控件是一个用于显示分层数据的控件,类似于文件浏览器中的目录结构。
161 0
|
前端开发 C#
WPF TreeView 启动时如何默认选择首个节点
WPF TreeView 启动时如何默认选择首个节点
如何解决WPF中 ScrollViewer 内包含 TreeView 或者 ListBox 等控件时滚轮事件被劫持的问题
如何解决WPF中 ScrollViewer 内包含 TreeView 或者 ListBox 等控件时滚轮事件被劫持的问题
WPF TreeView设置所有节点默认展开
WPF TreeView设置所有节点默认展开
|
C#
WPF TreeView 选择事件执行两次,获取TreeView的父节点的解决方法
1.TreeView选择事件执行两次 Very often, we need to execute some code in SelectedItemChanged depending on the selected TreeViewItem.
1147 0
|
C#
潜移默化学会WPF(难点控件treeview)--改造TreeView(CheckBox多选择版本),递归绑定数据
原文:潜移默化学会WPF(难点控件treeview)--改造TreeView(CheckBox多选择版本),递归绑定数据 目前自己对treeview的感慨很多 今天先讲 面对这种 表结构的数据 的其中一种绑定方法,后面多几列其他属性都没关系,例如多个字段, 1  A  0 2  B  0 3  C  0 4  D  1 5  E  2 6  F  4 7  G 1 .
2368 0
|
C#
WPF—TreeView无限极绑定集合形成树结构
原文:WPF—TreeView无限极绑定集合形成树结构 1.如图所示:绑定树效果图   2.前台Xaml代码:                                                                                          ...
1268 0
|
C#
WPF中获取TreeView以及ListView获取其本身滚动条的方法,可实现自行调节scoll滚动的位置(可相应获取任何控件中的内部滚动条)
原文:WPF中获取TreeView以及ListView获取其本身滚动条的方法,可实现自行调节scoll滚动的位置(可相应获取任何控件中的内部滚动条) 对于TreeView而言: TreeViewAutomationPeer lvap = new TreeViewAuto...
2388 0