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.

原文地址:https://www.cnblogs.com/lonelyxmas/p/9055389.html

时间: 2024-10-12 16:10:04

WPF TreeView HierarchicalDataTemplate的相关文章

WPF TreeView绑定字典集合

1 <TreeView Name="Tree" HorizontalAlignment="Left" Height="269" Width="292" > 2 3 <TreeView.ItemTemplate> 4 <HierarchicalDataTemplate ItemsSource="{Binding Value}"> 5 <StackPanel> 6

WPF TreeView绑定xaml的写法(转)

WPF TreeView绑定xaml的写法 2018年05月30日 10:16:27 dxm809 阅读数:441 方法一 <Window x:Class="TreeViewDemo.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"        xmlns:x="http://schemas.microsoft.com/winfx/2006/x

WPF TreeView 选择事件执行两次,获取TreeView的父节点的解决方法

1.TreeView选择事件执行两次 Very often, we need to execute some code in SelectedItemChanged depending on the selected TreeViewItem. ButSelectedItemChanged is called twice. This is due to stealing focus from the main window, which is screwing something up. Wha

WPF TreeView 虚拟化-设置滚动到选中项

原文:WPF TreeView 虚拟化-设置滚动到选中项 前言 列表滚动到具体的数据项? ListBox提供了简易快捷的滚动定位函数ScrollIntoView. TreeView树状结构列表,则没有此类方法,无法与ListBox一样,直接设置滚动到具体的数据项. 同时,SelectedItem也是只读的,无法设置SelectedItem来间接的设置滚动项. TreeView滚动定位 1. 对TreeViewItem添加一个附加属性IsScrolledToViewWhenSelected,在属性

WPF TreeView 减少节点的缩进

WPF TreeView 减少节点的缩进 [服务器破旧,速度较慢,见谅!] 原文地址:https://www.cnblogs.com/swack/p/11363658.html

WPF使用HierarchicalDataTemplate绑定Dictionary生成TreeView

Dictionary中的<string, CustomeType>CustomeType是一个集合,将其绑定生成一棵树,树的第一层节点是Dictionary的Key,第二层是CustomeType集合,所有代码用XAML实现. 代码如下: <TreeView Name="dictree" ItemsSource="{Binding}"> <TreeView.Resources> <HierarchicalDataTempla

TreeView —WPF—MVVM—HierarchicalDataTemplate

摘要:采用HierarchicalDataTemplate数据模板和treeview在MVVM模式下实现行政区划树, 支持勾选. 一.代码 1.Model using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WpfHierarchicalTemplate { public class Distric

WPF/Silverlight HierarchicalDataTemplate 模版的使用(转)

上一篇 对Wpf/Silverlight Template 进行了总结,本篇继续上一篇,主要是介绍 HierarchicalDataTemplate 的使用方法.HierarchicalDataTemplate 继承于DataTemplate,被称之为"层级式数据模板",主要是应用层级比较明显数据集合,其典型的应用就是对TreeView控件进行数据绑定,接下来就在Silverlight 5 下进行一下演示.最近有个卖凉茶的节目比较火,叫中国好声音,里面的导师和其歌手的分组就是个层级结构

WPF treeview扩展

记录一下工作中遇到的问题,以便以后忘记了可以来看. 在工作中遇到一个问题,就是要实现类型如下的界面,没有使用Telerik和Dev库.本来最开始是想使用Datagrid,但不知道怎么实现treeview,后来遍使用treeview. 前端xaml代码: <TreeView x:Name="mytreeview"> <TreeView.ItemTemplate> <HierarchicalDataTemplate ItemsSource="{Bin