当前位置: 首页 > news >正文

WPF —— TreeView树形控件

1 TreeView简介

 TreeView 表示一个控件,该控件在树结构(其中的项可以展开和折叠)中显示分层数据。 

    TreeView 是一个 ItemsControl,这意味着它可以包含任何类型的对象的集合 (,例如字符串、图像或面板) 。

2 Tree View常用的属性

        meun 水平菜单
        contextMenu 内容菜单
        TreeView 树形菜单,

        SelectedItemChanged 当选择子项发生改变的时候触发

        TreeViewItem 子项

3关于Tree View的实例 使用动态绑定数据

 <StackPanel><TreeView Name="t1" SelectedItemChanged="t1_SelectedItemChanged"><!--静态数据绑定 TreeViewItem 子项--><TreeViewItem Header="实验小学"><TreeViewItem Header="一年级"></TreeViewItem><TreeViewItem Header="二年级"></TreeViewItem><TreeViewItem Header="三年级"></TreeViewItem><TreeViewItem Header="四年级"></TreeViewItem></TreeViewItem><TreeViewItem Header="外国语小学"><TreeViewItem Header="炼器基础篇"></TreeViewItem><TreeViewItem Header="筑基篇"></TreeViewItem><TreeViewItem Header="结丹凝丹篇"></TreeViewItem><TreeViewItem Header="元婴化婴篇"></TreeViewItem></TreeViewItem><TreeViewItem Header="裕禄小学"></TreeViewItem><!--动态绑定数据:单个对象绑定例如textblock label textbox等绑定list集合 listbox、combobox、各种菜单、datagrid德国可以绑定属性一般都是: itemsoure--><TreeView ItemsSource="{Binding }" Name="t2"><!--子项绑定是其中一个对象的属性--><TreeView.ItemTemplate><!--树形数据的模板 ItemsSource 子级菜单对象的集合--><HierarchicalDataTemplate ItemsSource="{Binding SubMenus}"><!--绑定子集标题--><TextBlock Text="{Binding Name}"></TextBlock></HierarchicalDataTemplate></TreeView.ItemTemplate></TreeView></TreeView></StackPanel>

模型类的两种方法

一:

MenuInfo m1 = new MenuInfo(){Name = "实验小学",// 存放子集标题对象SubMenus = new List<MenuInfo>(){new MenuInfo() {Name= "一年级",SubMenus= new List<MenuInfo>(){new MenuInfo() {Name = "语文"},new MenuInfo() {Name = "数学"},new MenuInfo() {Name = "体育"},new MenuInfo() {Name = "英语"},}},new MenuInfo() { Name="二年级"},new MenuInfo() { Name="三年级"},new MenuInfo() { Name="四年级"},new MenuInfo() { Name="五年级"},}};MenuInfo m2 = new MenuInfo(){Name = "特殊学校",SubMenus = new List<MenuInfo>(){new MenuInfo(){Name = "一年班"},new MenuInfo(){Name = "二年班"},}};List<MenuInfo> list = new List<MenuInfo>();list.Add(m1);list.Add(m2);this.t2.ItemsSource = list;public class MenuInfo
{public string Name { get; set; }public List<MenuInfo> SubMenus { get; set; } // 子集菜单的集合public MenuInfo(string n, MenuInfo m1) {Name = n;if(m1 != null){// 如果父级对象的subMenus 为null 则新建,如果不为空 则添加if (m1.SubMenus is null) m1.SubMenus = new List<MenuInfo>();m1.SubMenus.Add(this);}}public MenuInfo(){}
}

二:

 

        // 标题对象MenuInfo gaibang = new MenuInfo("丐帮",null);// 二级菜单MenuInfo qiaofeng = new MenuInfo("乔峰", gaibang);MenuInfo zhuangjuxian = new MenuInfo("庄聚贤", gaibang);MenuInfo wuzhuanglao = new MenuInfo("五长老",gaibang);// 三级菜单MenuInfo xifu1 = new MenuInfo("阿紫", qiaofeng);MenuInfo xifu2 = new MenuInfo("阿紫她姐", qiaofeng);List<MenuInfo> list = new List<MenuInfo>();list.Add(gaibang);this.t2.ItemsSource = list;}private void t1_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e){MessageBox.Show((t1.SelectedItem as TreeViewItem).Header.ToString());}
}
public class MenuInfo
{public string Name { get; set; }public List<MenuInfo> SubMenus { get; set; } // 子集菜单的集合public MenuInfo(string n, MenuInfo m1) {Name = n;if(m1 != null){// 如果父级对象的subMenus 为null 则新建,如果不为空 则添加if (m1.SubMenus is null) m1.SubMenus = new List<MenuInfo>();m1.SubMenus.Add(this);}}public MenuInfo(){}
}

相关文章:

WPF —— TreeView树形控件

1 TreeView简介 TreeView 表示一个控件&#xff0c;该控件在树结构&#xff08;其中的项可以展开和折叠&#xff09;中显示分层数据。 TreeView 是一个 ItemsControl&#xff0c;这意味着它可以包含任何类型的对象的集合 (&#xff0c;例如字符串、图像或面板) 。 2 Tree Vie…...

2024.2.20力扣每日一题——从前序和中序遍历序列构建二叉树

2024.2.20 题目来源我的题解方法一 递归方法二 迭代 题目来源 力扣每日一题&#xff1b;题序&#xff1a;105 我的题解 方法一 递归 前序特点&#xff1a;[ 根节点, [左子树的前序遍历结果], [右子树的前序遍历结果] ]中序特点&#xff1a;[ [左子树的中序遍历结果], 根节点…...

c++ 小游戏(2种)

目录 介绍 游戏1 游戏2 介绍 因为DEV C的编译环境较小&#xff0c;所以大部分的游戏代码都无法在此上运行&#xff0c;我收集了一部分摸鱼小游戏的源码&#xff0c;在此呈现&#xff0c;如果有能在DEV C上运行的我会先作声明&#xff1a; 游戏1 扫雷 #include<stdio.…...

电阻详解:定义、公式、影响因素及电阻器类型解析

电阻定义 电阻是指当电流通过导体时&#xff0c;导体对电流流动所呈现的阻碍作用的物理量。它是电路元件的一个基本参数&#xff0c;用于量化导体阻止电荷定向移动的能力。#电阻#的大小决定了通过导体的电流与两端电压之间的关系&#xff0c;遵循欧姆定律&#xff0c;即在恒定…...

LabVIEW动车组谐波分析与检测系统

LabVIEW动车组谐波分析与检测系统 随着中国高速铁路网络的快速发展&#xff0c;动车组数量和运行速度的不断提升&#xff0c;其产生的谐波问题对电网产生了不小的影响。基于图形化编程语言LabVIEW&#xff0c;开发了一套动车组谐波分析与检测系统&#xff0c;旨在实时监控与分…...

H5移动端 Vue3 + vue-virtual-scroller 实现长列表性能优化

文章目录 安装 vue-virtual-scroller引入&#x1f4e2;注意事项使用基础使用上拉加载下拉刷新 移动端在渲染长列表时 大量dom节点的渲染和重绘重排会导致页面卡顿、滚动不流畅、设备耗电加快、影响移动设备电池寿命等性能问题 这里分享使用【虚拟滚动】方案进行长列表优化&…...

第20章-IP路由原理

目录 1. 概述 2. 路由表 3. 查表规则 4. 路由来源类型 5. 路由优先级 6. 路由的度量值 7. 路由器写表规则 1. 概述 1. 定义 路由器:异构网络互联机制; 路由:指导路由器如何进行数据发送的路径信息; 路由表:目的地址、下一跳、出接口等; 2. IP连通的条件 沿途的每…...

SBCFormer:能够在单板计算机上以每秒1帧的速度进行全尺寸ImageNet分类的轻量级网络

文章目录 摘要1、引言2、 相关工作2.1、用于移动设备的卷积网络2.2、移动设备上的ViT和CNN-ViT混合模型2.3、评估指标 3、CNN-ViT 混合模型在低端CPU上的应用3.1、设计原则3.2、SBCFormer的整体设计3.3、SBCFormer块3.4、改进的注意力机制 4、实验结果4.1、实验设置4.2、ImageN…...

【opencv】教程代码 —features2D(8)AKAZE 特征点匹配和图像拼接

graf1.png graf3.png <?xml version"1.0"?> <opencv_storage> <H13 type_id"opencv-matrix"><rows>3</rows><cols>3</cols><dt>d</dt><data>7.6285898e-01 -2.9922929e-01 2.2567123e02…...

ssm基于springboot的数字家庭亲子视频分享网站java+vue

本网站的模块主要分为前台展示模块和后台管理模块。 前台展示模块功能如下&#xff1a; 1&#xff09;家庭照片模块 主要功能是对家庭照片的分类显示&#xff0c;如旅游、运动、生活、工作、学习等&#xff0c;每一类中的照片按时间轴展示出来。 2&#xff09;家庭亲子视频模块…...

产品经理功法修炼(1)之自我管理

点击下载《产品经理功法修炼(1)之自我管理》 1. 前言 产品经理的能力修炼并非局限于某一技能的速成,而是需要全面参与到产品的整个生命周期中,通过不断的实践来逐步提升自己的各项能力。尽管在企业的日常运作中,我们不可能身兼数职去扮演每一个角色,但作为产品的核心负…...

2024年04月IDE流行度最新排名

点击查看最新IDE流行度最新排名&#xff08;每月更新&#xff09; 2024年04月IDE流行度最新排名 顶级IDE排名是通过分析在谷歌上搜索IDE下载页面的频率而创建的 一个IDE被搜索的次数越多&#xff0c;这个IDE就被认为越受欢迎。原始数据来自谷歌Trends 如果您相信集体智慧&am…...

17.应用负载压力测试

早些点&#xff0c;下午题考&#xff0c;最近几年出现的少&#xff1b; 备考较为简单&#xff1b;历年真题相似度高&#xff1b; 主要议题&#xff1a; 1.负载压力测试概述 注意这些测试细微的差别&#xff1b; 负载测试和压力测试的方法比较相似&#xff0c;但是目的不同&a…...

Gauss到底是不是国产数据库

华为GaussDB数据库深度解析 引言 在数字化转型的浪潮中&#xff0c;数据成为企业最宝贵的资产之一。如何高效地管理和利用这些数据&#xff0c;成为企业面临的一大挑战。数据库作为数据存储和管理的核心系统&#xff0c;其性能、安全性、可用性和扩展性等特性直接影响到企业的…...

spark sql执行引擎原理及配置

如果我们想要给上层开发人员配置好一个统一的sql开发界面&#xff0c;让他们统一通过sql开发即可&#xff0c;可通过spark中的thriftserver服务实现&#xff0c;与hive中的thriftserver类似&#xff0c;配置好该服务后&#xff0c;上层通过db client或者代码中通过jdbc连接即可…...

【C语言基础】:自定义类型(二) -->联合和枚举

文章目录 一、联合体1.1 联合体类型的声明1.2 联合体的特点1.3 相同成员的结构体和联合体对比1.4 联合体大小的计算1.5 联合体练习 二、枚举类型2.1 枚举类型的声明2.2 枚举的优点 书山有路勤为径&#xff0c;学海无涯苦作舟。 创作不易&#xff0c;宝子们&#xff01;如果这篇…...

【授时防火墙】GPS北斗卫星授时信号安全防护装置系统

【授时防火墙】GPS北斗卫星授时信号安全防护装置系统 【授时防火墙】GPS北斗卫星授时信号安全防护装置系统 1、装置概述 卫星信号安全防护装置&#xff08;以下简称“防护装置”&#xff09;是一款专门针对卫星导航授时安全的设备。该设备能接收 BD 系统和 GPS 系统卫星信号&am…...

关于 MySQL 优化(详解)

文章目录 关于 MySQL 优化一、硬件方面的优化1、关于 CPU2、关于内存3、关于磁盘 二、MySQL 配置文件1、 default-time-zone8:002、interactive_timeout 1203、wait_timeout 1204、open_files_limit 102405、group_concat_max_len 1024006、usermysql7、character-set-serv…...

Hive详解(5)

Hive 窗口函数 案例 需求&#xff1a;连续三天登陆的用户数据 步骤&#xff1a; -- 建表 create table logins (username string,log_date string ) row format delimited fields terminated by ; -- 加载数据 load data local inpath /opt/hive_data/login into table log…...

阿里云效codeup如何执行github flow工作流

在阿里云效中执行 GitHub 工作流&#xff0c;实质上是在使用 Git 进行版本控制的过程中遵循 GitHub Flow 的原则。GitHub Flow 是一种简洁高效的工作流程&#xff0c;特别适用于追求快速迭代的团队。下面是在阿里云效中执行 GitHub 工作流的基本步骤&#xff1a; 1. 准备工作 …...

VLSI设计实战:手把手教你用SPICE模型搭建9种基础电路(附完整代码)

VLSI设计实战&#xff1a;手把手教你用SPICE模型搭建9种基础电路&#xff08;附完整代码&#xff09; 在集成电路设计的浩瀚宇宙中&#xff0c;SPICE模型就像工程师手中的瑞士军刀。我第一次接触SPICE仿真时&#xff0c;面对密密麻麻的网表文件完全不知所措——直到导师扔给我一…...

BilibiliDown终极实战指南:解锁B站视频批量下载的完整方案

BilibiliDown终极实战指南&#xff1a;解锁B站视频批量下载的完整方案 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirro…...

利用VMware虚拟机在本地模拟星图GPU平台环境测试MogFace-large

利用VMware虚拟机在本地模拟星图GPU平台环境测试MogFace-large 想试试最新的MogFace-large人脸检测模型&#xff0c;但手头没有现成的云GPU服务器&#xff1f;或者想先在本地环境里跑通流程&#xff0c;验证一下效果再上云&#xff1f;今天就来分享一个非常实用的方法&#xf…...

如何快速将Blender模型导入Unreal Engine?免费Datasmith插件完整指南

如何快速将Blender模型导入Unreal Engine&#xff1f;免费Datasmith插件完整指南 【免费下载链接】bl_datasmith Blender addon to export UE4 Datasmith format 项目地址: https://gitcode.com/gh_mirrors/bl/bl_datasmith Blender Datasmith Export是一款开源免费的Bl…...

你的舵机抖得厉害?可能是PWM信号配置错了!STM32定时器避坑指南(实测MG996R)

STM32舵机控制实战&#xff1a;从PWM原理到MG996R精准调参 引言 当你第一次尝试用STM32控制舵机时&#xff0c;可能会遇到这样的场景&#xff1a;按照教程配置好PWM参数&#xff0c;烧录程序后却发现舵机要么纹丝不动&#xff0c;要么疯狂抖动&#xff0c;甚至发出刺耳的噪音…...

nlp_structbert_sentence-similarity_chinese-large保姆级教程:前端React界面二次开发与定制化UI集成指南

nlp_structbert_sentence-similarity_chinese-large保姆级教程&#xff1a;前端React界面二次开发与定制化UI集成指南 1. 引言&#xff1a;为什么需要定制化UI&#xff1f; 如果你已经体验过基于StructBERT-Large的语义相似度工具&#xff0c;可能会发现它的基础界面虽然功能…...

实战详解:从零构建 LangChain 智能 Agent,让大模型真正“动起来”!

文章目录&#x1f4d6; 一、为什么我们需要 Agent&#xff1f;&#x1f504; Agent 核心工作流图解&#x1f6e0;️ 二、环境准备与核心组件核心组件介绍&#x1f4bb; 三、实战代码&#xff1a;构建“全能数据分析师”Agent1. 定义工具 (Tools)2. 构建 Agent 逻辑 (ReAct 模式…...

如何3分钟搞定本地语音转文字:TMSpeech终极高效方案

如何3分钟搞定本地语音转文字&#xff1a;TMSpeech终极高效方案 【免费下载链接】TMSpeech 腾讯会议摸鱼工具 项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech 还在为会议记录手忙脚乱&#xff1f;为视频字幕制作头疼不已&#xff1f;TMSpeech——你的本地实时语…...

Linux文件操作命令与文件权限

1.创建一个新文件2.查看显示文件3.more命令类似 cat&#xff0c;不过会以一页一页的形式显示4.head命令显示文件的头部内容5.tail命令可用于查看文件的内容的后10行6.文件的压缩与解压7.tar命令用来建立8.zip命令用于压缩文件9.unzip命令用于解压缩zip文件10.文件属性...

2026年嘎嘎降AI用了30天,说几句真心话

论文写完用AI检测一查&#xff0c;知网AIGC率60%多&#xff0c;心里一凉。 这种情况现在太常见了。2026年各大高校对AIGC检测的要求比以前严了不少&#xff0c;很多人都在找降AI工具。这篇文章就是把我用过的几款主流工具汇总一下&#xff0c;帮你少走弯路。 测试前说一件重要…...