WPF 的TreeView的TreeViewItem下动态生成TreeViewItem

树形结构仅部分需要动态生成TreeViewItem的可以参考本文。

xaml页面

<TreeView MinWidth="220" ><TreeViewItem Header="功能列表" ItemsSource="{Binding Functions}"><TreeViewItem.ItemTemplate><HierarchicalDataTemplate><WrapPanel><CheckBox IsChecked="{Binding IsSelect}"/><Label Content="{Binding Name}"/></WrapPanel></HierarchicalDataTemplate></TreeViewItem.ItemTemplate></TreeViewItem>
</TreeView>

对象类:

public class SelectFunction : NotifyPropertyChangedBaseClass
{private bool isselect;/// <summary>/// 是否选中/// </summary>public bool IsSelect{get { return isselect; }set{isselect = value;OnPropertyChanged();}}public Guid Id { get; set; }private string name;public string Name{get { return name; }set{name = value;OnPropertyChanged();}}
}

对象类继承的通知类:

public class NotifyPropertyChangedBaseClass : INotifyPropertyChanged
{public event PropertyChangedEventHandler PropertyChanged;public void OnPropertyChanged([CallerMemberName] string propertyname = "")//通过该方法可以直接获取调用者的名称 前提是需要有默认参数{PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyname));}
}

XAML绑定的集合

 private ObservableCollection<SelectFunction> functions;/// <summary>/// 可选的功能列表/// </summary>public ObservableCollection<SelectFunction> Functions{get { return functions; }set{functions = value;OnPropertyChanged();}}//这只是集合的定义,自己给集合赋值

最终效果,我这没有用其自带的属性事件去判断是否选中,而是采用对象类中的IsSelect的值来判断的,仅供参考。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/143152.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

TMStarget学习——T1 Segmentation数据处理及解bug

最新学习季公俊老师的神器 TMStarget 的第一个模块基于结构像的靶区计算T1 segmentation。下面上步骤&#xff1a; (1)在github 上下载 TMStarget https://github.com/jigongjun/Neuroimaging-and-Neuromodulation (2)按照要求下载依赖工具软件AFQ、vistasoft、SPM12 &#…

虚拟机vaware中cpu设置跑满大核

首先&#xff0c;大核速度快&#xff0c;并且在资源紧张时大核优先&#xff0c;小核甚至是闲着围观大核跑满。其次&#xff0c;遇到经常切换操作虚拟机和win11的使用场景&#xff0c;切换核心本身也会造成一点卡顿&#xff0c;降低虚拟机里操作流畅度。另外&#xff0c;13代在你…

马斯洛需求理论(人类需求的五个层次)用户体验五要素四点心智模型

一&#xff1a;核心用户 1.1 什么是核心用户 潜在用户 &#xff1a;未使用该产品的用户&#xff0c;但是有使用的需求。目标用户 &#xff1a;已经使用产品的普通用户&#xff0c;活跃度低。种子用户 &#xff1a;活跃度比较高&#xff0c;对产品的熟悉程度比较高&#xff0c…

无人机光电吊舱的技术!!

1. 成像技术 可见光成像&#xff1a;通过高分辨率相机捕捉地面或空中目标的清晰图像&#xff0c;提供直观的视觉信息。 红外热成像&#xff1a;利用红外辐射探测目标的温度分布&#xff0c;实现夜间或恶劣天气条件下的隐蔽目标发现。 多光谱成像&#xff1a;通过不同波段的光…

windows C++ 并行编程-异步消息块(一)

代理库提供了多种消息块类型&#xff0c;使你能够以线程安全的方式在应用程序组件之间传播消息。 这些消息块类型通常与 concurrency::send、concurrency::asend、concurrency::receive 和 concurrency::try_receive 等各种消息传递例程配合使用。 本文包含以下各节&#xff1…

Linux:进程(二)

目录 一、cwd的理解 二、fork的理解 1.代码共享 2.各司其职 3.fork的返回值 三、进程状态 1.进程排队 2.进程状态 运行状态 一、cwd的理解 cwd&#xff08;current working directory&#xff09;。译为当前工作目录。 在C语言中&#xff0c;使用fopen函数打开文件时&…

React-Hook原理

前置知识 闭包 在 Hook 的应用比如 dispatch 函数,也就是 useState 返回的第二个参数 闭包是指有权访问另一个函数作用域中变量或方法的函数,创建闭包的方式就是在一个函数内创建闭包函数,通过闭包函数访问这个函数的局部变量, 利用闭包可以突破作用链域的特性,将函数内部…

IDEA去除掉虚线,波浪线,和下划线实线的方法

初次安装使用IDEA&#xff0c;总是能看到导入代码后&#xff0c;出现很多的波浪线&#xff0c;下划线和虚线&#xff0c;这是IDEA给我们的一些提示和警告&#xff0c;但是有时候我们并不需要&#xff0c;反而会让人看着很不爽&#xff0c;这里简单记录一下自己的调整方法&#…

基于ssm+vue+uniapp的面向企事业单位的项目申报小程序

开发语言&#xff1a;Java框架&#xff1a;ssmuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;M…

水果成熟度检测系统源码分享

水果成熟度检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer V…

mysql事务的隔离级别学习

事务的隔离级别: ⅰ. 读未提交 ⅱ. 对已提交 &#xff08;解决 脏读&#xff09; ⅲ. 可重复读 &#xff08;解决 不可重复读&#xff09; ⅳ. 串行化 &#xff08;解决 脏读 不可重复读 幻读 问题 &#xff09; 隔离级别分类如下&#xff0c;在不同的隔离级别下可能产生不…

LabVIEW提高开发效率技巧----使用LabVIEW工具

LabVIEW为开发者提供了多种工具和功能&#xff0c;不仅提高工作效率&#xff0c;还能确保项目的质量和可维护性。以下详细介绍几种关键工具&#xff0c;并结合实际案例说明它们的应用。 1. VI Analyzer&#xff1a;自动检查代码质量 VI Analyzer 是LabVIEW提供的一款强大的工…

Python 之数据库操作(Python Database Operations)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…

新书出版,大陆首本NestJS图书《NestJS全栈开发解析:快速上手与实践》

新书全栈实战项目&#xff1a;数字门店管理平台开源啦&#x1f389;&#x1f389;&#x1f389; GitHub地址&#xff08;持续更新NestJS企业级实践&#xff09;&#xff1a;欢迎star⭐️⭐️⭐️ 前端ReactTypeScriptVite 后端NestMySQLRedisDocker 前言 对&#xff0c;你没看…

esp32s3分区表配置及读写

一、分区表介绍 每片 ESP32-S3 的 flash 可以包含多个应用程序&#xff0c;以及多种不同类型的数据&#xff08;例如校准数据、文件系统数据、参数存储数据等&#xff09;。因此&#xff0c;在 flash 的 默认偏移地址 0x8000 处烧写一张分区表。 分区表中的每个条目都包括以下…

Lnux驱动开发学习 -- imx6ull LCD驱动学习

文章目录 环境LCD设备树信息imx6ull的LCD驱动 环境 正点提供的 linux 4.15 LCD设备树信息 看下imx6ull提供的设备树信息&#xff1a; arch/arm/boot/dts/imx6ull.dtsi&#xff1a;lcdif: lcdif021c8000 {compatible "fsl,imx6ul-lcdif", "fsl,imx28-lcdif&…

JDBC编程详细总结

一、JDBC编程 JDBC编程有标准步骤(八股文) 注册驱动 将sql语句的运行环境加载到JVM 连接数据库 获得执行SQL的对象 执行SQL语句,获得结果 关流 1、 注册驱动 Class.forName("com.mysql.jdbc.Driver");//5.7版本 加载驱动 Class.forName("com.mysql.cj.jdb…

Android TV RecyclerView列表获得焦点左右换行

在TV上&#xff0c;用RecyclerView显示一个列表&#xff0c;飞鼠遥控左右遥控获得Item焦点&#xff0c;到最后一个进行右键换行&#xff0c;是不能做到的&#xff0c;因此需要监听key事件处理换行。 效果图如下 代码实现 Item.xml布局 <?xml version"1.0" enc…

红帽 Quay- 配置镜像代理缓存

《OpenShift / RHEL / DevSecOps 汇总目录》 说明&#xff1a;本文已经在 Quay 3.12 环境中验证 说明&#xff1a;可先根据《红帽 Quay - 安装篇》完成 Quay 安装。 镜像代理缓存功能 Quay 的镜像代理缓存功能可以将用户拉取的远程镜像保存到本地 Quay 的 proxy cache 中&am…

C++速通LeetCode中等第2题-最长连续序列

方法一&#xff0c;排序后遍历&#xff0c;后减前1&#xff0c;计数&#xff0c; 相等跳过&#xff0c;后减前&#xff01;1就保存。 class Solution { public:int longestConsecutive(vector<int>& nums) {vector<int> ans;int count 1;sort(nums.begin(),n…