WPF使用模板HierarchicalDataTemplate实现TreeView层次显示

本文详细介绍了如何使用WPF的HierarchicalDataTemplate在TreeView中实现层次显示,包括数据绑定、节点操作(添加、移动、删除、修改)以及查找定位的方法。在遇到TreeView多层更新不显示的问题时,通过调整对象初始化方式解决了问题。
摘要由CSDN通过智能技术生成

第一阶段 显示TreeView

效果图
这里写图片描述

之前看过很多博客, 都是呼哧贴一堆代码, 呼哧创建一个类, 呼哧创建一堆函数……当时任务很紧一下子看不懂也懒得看了(主要是缺图)…现在重新梳理一下还挺清晰的

例如数据是这样的
这里写图片描述

那么数据类可能是这样的

    class Person
    {
        public int Id { get; set; }
        public int Level { get; set; }
        public string Name { get; set; }
        public int ParentId { get; set; }
    }

再套一层, 节点可能是这样的

    class Node
    {
        public int Id { get; set; }
        public int Level { get; set; }
        public string Name { get; set; }
        public int ParentId { get; set; }
        public List<Node> Children { get; set; }

        public string TreeDisplay {
            get { return $"{Name} [第{Level}世]";}
        }

        // 怎么把节点添加到List<>里面忽略...

    }

典型的一个树的结构. 要使用HierarchicalDataTemplate, 属性需要有IdParentId, 不知道是模板本身的硬性规定还是可以手动设置的

<TreeView x:Name="treeView" Grid.Row="1">
    <TreeView.ItemTemplate>
        <HierarchicalDataTemplate ItemsSource="{Binding Children}">
            <StackPanel>
                <TextBlock VerticalAlignment="Center" FontSize="14" Text="{Binding TreeDisplay}" Margin="2,0,0,0"/>
            </StackPanel>
        </HierarchicalDataTemplate>
    </TreeView.ItemTemplate
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值