HierarchicalDataTemplate

2023-11-06

针对具有分层数据结构的控件设计的,比如说TreeView,相当于可以每一个层级上做DataTemplate

XmlDataProvider:数据源,写在Resources下

<XmlDataProvider x:Key="Info" XPath="Nations"> <x:XData> <Nations xmlns=""> <Nation Name="中国"> <Provinces> <Province Name="安徽"> <Citys> <City Name="安庆"> <Countrys> <Country Name="潜山"/> <Country Name="桐城"/> </Countrys> </City> <City Name="合肥"> <Countrys> <Country Name="长丰"/> <Country Name="肥东"/> </Countrys> </City> </Citys> </Province> <Province Name="江苏"> <Citys> <City Name="南京"> <Countys> <Country Name="溧水"/> <Country Name="高淳"/> </Countys> </City> <City Name="苏州"> <Countys> <Country Name="常熟"/> </Countys> </City> </Citys> </Province> </Provinces> </Nation> </Nations> </x:XData> </XmlDataProvider> 

HierarchicalDataTemplate:层级模板,写在Resources下

<HierarchicalDataTemplate DataType="Nation" ItemsSource="{Binding XPath=Provinces/Province}">
    <StackPanel Background="AliceBlue"> <TextBlock FontSize="20" Text="{Binding XPath=@Name}"/> </StackPanel> </HierarchicalDataTemplate> <HierarchicalDataTemplate DataType="Province" ItemsSource="{Binding XPath=Citys/City}"> <StackPanel Background="LightBlue"> <TextBlock FontSize="18" Text="{Binding XPath=@Name}"/> </StackPanel> </HierarchicalDataTemplate> <HierarchicalDataTemplate DataType="City" ItemsSource="{Binding XPath=Countrys/Country}"> <StackPanel Background="LightBlue"> <TextBlock FontSize="18" Text="{Binding XPath=@Name}"/> </StackPanel> </HierarchicalDataTemplate> <HierarchicalDataTemplate DataType="Country"> <StackPanel Background="LightSalmon"> <TextBlock FontSize="18" Text="{Binding XPath=@Name}"/> </StackPanel> </HierarchicalDataTemplate> 
解释
<HierarchicalDataTemplate DataType="Nation" ItemsSource="{Binding XPath=Provinces/Province}">
    <StackPanel Background="AliceBlue"> <TextBlock FontSize="20" Text="{Binding XPath=@Name}"/> </StackPanel> </HierarchicalDataTemplate> 

DataType表示定义的目标是Nation
ItemsSource表示下一级是Provinces/Province (总标签/单个标签名)
StackPanel 定义Nation的外观
XPath=@Name表示绑定为Name属性

比如:

<Nation Name="中国" Age="15">
    <HierarchicalDataTemplate DataType="Nation" ItemsSource="{Binding XPath=Provinces/Province}"> <StackPanel Background="AliceBlue"> <TextBlock FontSize="20" Text="{Binding XPath=@Name}"/> <Label FontSize="15" Content="{Binding XPath=@Age}"></Label> </StackPanel> </HierarchicalDataTemplate> </Nation> 
 
 

TreeView

<TreeView ItemsSource="{Binding Source={StaticResource ResourceKey=Info},XPath=Nation}"></TreeView> 

像引用静态资源一样使用
XPath决定显示的根节点

如果想从第二/三级开始显示,而不是根节点
修改XPath(写路径,否则找不到)

<TreeView ItemsSource="{Binding Source={StaticResource ResourceKey=Info},XPath=Nation/Provinces/Province}"></TreeView> 
 
 
<TreeView ItemsSource="{Binding Source={StaticResource ResourceKey=Info},XPath=Nation/Provinces/Province/Citys/City}"></TreeView> 
 
 

转载于:https://www.cnblogs.com/Lulus/p/8157718.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HierarchicalDataTemplate 的相关文章

  • 五大常用经典算法

    五大常用算法之一 分治算法 一 基本概念 在计算机科学中 分治法是一种很重要的算法 字面上的解释是 分而治之 就是把一个复杂的问题分成两个或更多的相同或相似的子问题 再把子问题分成更小的子问题 直到最后子问题可以简单的直接求解 原问题的解即
  • LeetCode83: 删除排序链表中的重复元素

    给定一个已排序的链表的头 head 删除所有重复的元素 使每个元素只出现一次 返回 已排序的链表 示例 1 输入 head 1 1 2 输出 1 2 示例 2 输入 head 1 1 2 3 3 输出 1 2 3 提示 链表中节点数目在范围
  • 数据结构之链表与线性表

    数据结构之链表与线性表 线性表 顺序线性表 顺序表 顺序线性表 使用数组实现 一组地址连续的存储单元 数组大小有两种方式指定 一是静态分配 二是动态扩展 优点 随机访问特性 查找O 1 时间 存储密度高 逻辑上相邻的元素 物理上也相邻 缺点
  • PCL—低层次视觉—点云分割(RanSaC)

    点云分割 点云分割可谓点云处理的精髓 也是三维图像相对二维图像最大优势的体现 不过多插一句 自Niloy J Mitra教授的Global contrast based salient region detection出现 最优分割到底鹿死
  • findBug 错误修改指南

    FindBugs错误修改指南 1 EC UNRELATED TYPES Bug Call to equals comparing different types Pattern id EC UNRELATED TYPES type EC c
  • SDUT--OJ《数据结构与算法》实践能力专题训练6 图论

    A 数据结构实验之图论一 基于邻接矩阵的广度优先搜索遍历 Description 给定一个无向连通图 顶点编号从0到n 1 用广度优先搜索 BFS 遍历 输出从某个顶点出发的遍历序列 同一个结点的同层邻接点 节点编号小的优先遍历 Input
  • Hash映射理解

    先说数组 数组优点之一 能通过索引很快定位到值 hashmap 就是利用了数组这个优点 对比 线性映射 定义一个数组 数组的元素是结构体 结构体包括 一对键 值 伪代码表示 a 0 struct Bill 5 a 1 struct KK 6
  • Python 实现列队

    1 列队定义 队列是项的有序结合 其中添加新项的一端称为队尾 移除项的一端称为队首 当一个元素从队尾进入队列时 一直向队首移动 直到它成为下一个需要移除的元素为止 最近添加的元素必须在队尾等待 集合中存活时间最长的元素在队首 这种排序成为
  • 链表面试题(一):反转链表的算法实现

    关于链表的考察 链表是面试里面经常涉及到的考点 因为链表的结构相比于Hashmap Hashtable Concurrenthashmap或者图等数据结构简单许多 对于后者更多面试的侧重点在于其底层实现 比如Hashmap中Entry
  • 4Sum

    Given an array S of n integers are there elements a b c and d in S such that a b c d target Find all unique quadruplets
  • Unique Binary Search Trees -- LeetCode

    原题链接 http oj leetcode com problems unique binary search trees 这道题要求可行的二叉查找树的数量 其实二叉查找树可以任意取根 只要满足中序遍历有序的要求就可以 从处理子问题的角度来
  • 浮生六记

    浮生六记 目录 浮生六记卷一 闺房记乐 002 浮生六记卷二 闲情记趣 015 浮生六记卷三 坎坷记愁 022 浮生六记卷四 浪游记快 034 浮生六记 2 浮生六记卷一 闺房记乐 余生乾隆癸未冬十一月二十有二日 正值太平盛世 且在 衣冠之
  • CRC校验(二)

    CRC校验 二 参考 https blog csdn net liyuanbhu article details 7882789 https www cnblogs com esestt archive 2007 08 09 848856
  • 数据结构与算法-列表(双向链表)设计及其排序算法

    0 概述 本文主要涵盖列表 双向链表 的设计及其排序算法的总结 列表是一种典型的动态存储结构 其中的数据 分散为一系列称作节点 node 的单位 节点之间通过指针相互索引和访问 为了引入新节点或删除原有节点 只需在局部调整少量相关节点之间的
  • 数理统计知识整理——回归分析与方差分析

    题记 时值我的北科研究生第一年下 选学 统计优化 课程 备考促学 成此笔记 以谨记 1 线性回归 1 1 原理分析 要研究最大积雪深度x与灌溉面积y之间的关系 测试得到近10年的数据如下表 使用线性回归的方法可以估计x与y之间的线性关系 线
  • 【试题】排列组合

    在写一个远程的代码 如果本地有M个显示器 远程有N个显示器 M lt N 依据分辨率 显示器刷新频率等要求 需要对远程的N个显示器进行最佳分辨率修改 之后 需要从N个远程显示器中选择M个 跟本地显示器进行一对一的匹配 即从 A N M N
  • 插入排序超详解释,一看就懂

    目录 一 插入排序的相关概念 1 基本思想 2 基本操作 有序插入 二 插入排序的种类 三 直接插入排序 1 直接插入排序的过程 顺序查找法查找插入位置 2 使用 哨兵 直接插入排序 四 直接插入排序算法描述 五 折半插入排序 1 查找插入
  • 【数据结构入门精讲 | 第二篇】一文讲清算法复杂度

    上篇文章中我们引入了算法 数据结构 数据类型等概念 而要想衡量一个算法与数据结构是否为优质的 就需要一个衡量标准 这个衡量标准也是在我们实现一个好的算法时要遵循的原则 目录 基本概念 渐进性态 渐进性态数学表征 算法复杂度的运算 顺序搜索算
  • 【数据结构】双链表的定义和操作

    目录 1 双链表的定义 2 双链表的创建和初始化 3 双链表的插入节点操作 4 双链表的删除节点操作 5 双链表的查找节点操作 6 双链表的更新节点操作 7 完整代码 嗨 我是 Filotimo 很高兴与大家相识 希望我的博客能对你有所帮助
  • 高精度运算合集,加减乘除,快速幂,详细代码,OJ链接

    文章目录 零 前言 一 加法 高精度加法步骤 P1601 A B 二 减法 高精度减法步骤

随机推荐

  • Servlet+JDBC实战开发书店项目讲解第六篇:订单实现

    Servlet JDBC实战开发书店项目讲解第六篇 订单实现 1 数据库设计 在订单实现之前 我们需要对数据库进行相应的设计 在这个书店项目中 我们可以创建以下两个表来实现订单功能 1 1 订单表 Order 订单ID order id 主
  • 剪映电脑版使用教程(超详细)

    目录 页面设置 流程 素材详解 1 导入素材 2 注意导入素材的格式 3 添加素材到时间线面板 4 素材的删除 5 素材的分割 6 素材的伸缩 时间线面板详解 1 多条轨道的重叠 2 多条轨道的素材导入 3 多条轨道的分割 4 定格功能 5
  • Echarts折线图属性设置大全

    Echarts折线图属性设置大全 var option backgroundColor FFF0F5 title text 折线图 subtext 模拟数据 x center legend orient 设置布局方式 默认水平布局 可选值
  • html页面使用vue组件,初始化高德地图(实现绘制折线)

    html页面使用vue组件 初始化高德地图 实现绘制折线 一 vue初始化地图 1 引入高德地图的js 2 初始化地图容器
  • scroll-view 安卓无法下拉

    当前 Bug 的表现 在安卓上对 scroll view 无法下拉而且无法触发下拉事件 预期表现 与ios表现一致 可以使用scroll view 进行下拉并且触发下拉事件 原因 在ios上是可以下拉出来一部分距离从而触发下拉事件 但是在安
  • 攻防世界-WEB:command_execution

    题目https adworld xctf org cn challenges problem set index id 25 题目描述 小宁写了个ping功能 但没有写waf X老师告诉她这是非常危险的 你知道为什么吗 根据题目描述 我们可
  • 查找问题的利器 - Git Blame

    分享一下我老师大神的人工智能教程 零基础 通俗易懂 http blog csdn net jiangjunshow 也欢迎大家转载本篇文章 分享知识 造福人民 实现我们中华民族伟大复兴 原文 http gitbook liuhui998 c
  • 算法-倒置排序

    include
  • k8s学习-思维导图与学习笔记

    目录 前言 k8s思维导图 推荐 书籍 网站 课程 了解与安装 基础 资源调度 服务发布 配置管理 进阶 持久化存储 高级调度 高级 RBAC NetworkPolicy CKA 安全 CKS 前言 博主准备学习k8s 考个CKA和CKS证
  • 利用栈来破解迷宫问题

    利用栈来破解迷宫问题 对于迷宫类问题的破解 需要利用栈的思想 1 构思 假设 当前位置 指的是在搜索过程中某一时刻所在途中某个方块的位置 路径是最优走法 则求迷宫当中一条路径的思想便是 若当前位置可以通过 那么存放在 路径 中 可以通过的位
  • MySQL基础篇-第02章_MySQL环境搭建

    第02章 MySQL环境搭建 讲师 尚硅谷 宋红康 江湖人称 康师傅 官网 http www atguigu com 1 MySQL的卸载 步骤1 停止MySQL服务 在卸载之前 先停止MySQL8 0的服务 按键盘上的 Ctrl Alt
  • silverlight与Flash的技术比较[silverlight vs Flash] (转载)

    转载自 http bbs blueidea com thread 2773212 1 1 html 在以前的一篇 文章中我已经说明了Adobe和Microsoft在presentation layer的竞争关系 根据一些资料总结的功能 我针
  • 前端客户端日志上报功能开发

    客户端日志上报功能 描述 最近项目上需要做一个客户端重要报错信息上传保存至服务器 后台集中分析 需要前端支持 讲一下我这边处理的逻辑 仅供参考 1 项目初始化时定义一个console lr console lr function 2 组装要
  • 《FITNETS: HINTS FOR THIN DEEP NETS》论文整理

    目录 零 前言 一 Fitnet的目的及适用范围 1 目的 2 适用范围 3 背景及创新点 二 Hint Based Training思想 1 hint层与guided层 2 核心思想 三 Fitnet训练过程及效果 1 FItnet训练过
  • 边缘匹配matlab,几种简单常用的镜头边缘检测算法(matlab实现)

    在做镜头检测之前 为方便起见 我们先将一个视频短片提取出一定数量的图像序列 提取图片序列 video mmreader test avi Tag Reader NOF video NumberOfFrames Img diff zeros
  • 汇编程序设计与计算机体系结构软件工程师教程笔记:处理器、寄存器简介

    汇编程序设计与计算机体系结构 软件工程师教程 这本书是由Brain R Hall和Kevin J Slonka著 由爱飞翔译 中文版是2019年出版的 个人感觉这本书真不错 书中介绍了三种汇编器GAS NASM MASM异同 全部示例代码都
  • js怎么判断两数组之间有没有交集

    var arr1 1 2 3 4 5 6 7 8 1 var arr2 6 7 8 9 10 11 1 arr2 filter i gt return arr1 includes i 有两个数组 数组1和数组2 想实现的需求 判断数组2里有
  • 数据包在网络中的传输过程详解

    我们当今使用电子设备都离不开网络 通过网络我们可以聊天 玩游戏 看电影都操作 网络的本质就是交换数据 本文我们就来看下数据是如何在网络中传输的 计算机网络模型 现在有两种计算机网络模型 分别为OSI七层模型和TCP IP四层模型 OSI将计
  • MySQL中的触发器

    MySQL中的触发器 在数据库应用中 我们经常需要对数据进行某些操作 并在操作完成后进行相应的处理 这时候 可以使用触发器来实现这些功能 MySQL提供了强大的触发器功能 本文将带您深入了解MySQL中的触发器 什么是触发器 触发器是一种特
  • HierarchicalDataTemplate

    针对具有分层数据结构的控件设计的 比如说TreeView 相当于可以每一个层级上做DataTemplate XmlDataProvider 数据源 写在Resources下