wpf 带复选框的treeview_WPF:带复选框CheckBox的树TreeView
public class CommonTreeView : NotifyPropertyBase
{
// 父
///public CommonTreeView Parent
{
get;
set;
}
// 子
///public ListChildren
{
get;
set;
}
// 节点的名字
///public string NodeName
{
get;
set;
}
public bool? _isChecked;
// CheckBox是否选中
///public bool? IsChecked
{
get
{
return _isChecked;
}
set
{
SetIsChecked(value, true, true);
}
}
public CommonTreeView(string name)
{
this.NodeName=name;
this.Children=new List();
}
public CommonTreeView() { }
private void SetIsChecked(bool? value, bool checkedChildren, bool checkedParent)
{
if (_isChecked == value) return;
_isChecked = value;
//选中和取消子类
if (checkedChildren && value.HasValue && Children != null)
Children.ForEach(ch => ch.SetIsChecked(value, true, false));
//选中和取消父类
if (checkedParent && this.Parent != null)
this.Parent.CheckParentCheckState();
//通知更改
this.SetProperty(x => x.IsChecked);
}
// 检查父类是否选 中
/// 如果父类的子类中有一个和第一个子类的状态不一样父类ischecked为null
///private void CheckParentCheckState()
{
List checkedItems = new List();
string checkedNames = string.Empty;
bool? _currentState = this.IsChecked;
bool? _firstState = null;
for (int i = 0; i
{
bool? childrenState= this.Children[i].IsChecked;if (i==0)
{
_firstState= childrenState;}
else if (_firstState != childrenState){
_firstState= null;}
}
if (_firstState != null)_currentState= _firstState;SetIsChecked(_firstState, false, true);
}
/// /// 创建树
/public void CreateTreeWithChildre( CommonTreeView children,bool? isChecked)
{
this.Children.Add(children);
//必须先把孩子加入再为Parent赋值,
//否则当只有一个子节点时Parent的IsChecked状态会出错
children.Parent = this;
children.IsChecked = isChecked;
}
}
wpf 带复选框的treeview_WPF:带复选框CheckBox的树TreeView相关推荐
- WPF中datagrid如何在第一列添加勾选框
主要使用的是DataGridCheckBoxColumn,能够自动为所有行添加勾选框,随后我们在设置勾选框的绑定Binding="{Binding IsSelected,RelativeSo ...
- WPF 用户控件分享之边上带输入框的圆圈
WPF 用户控件分享之边上带输入框的圆圈 独立观察员 2022 年 8 月 20 日 最近有这样一个需求,有一圈圆形,每个圆形边上有个输入框,以下是完成后的效果图: 拿到这个需求后,分析界面上每个圆形 ...
- 在reader中勾选pdf复选框_绝对可勾选的在WORD 2003中加入复选框的方法
绝对可勾选的在 word 2003 中加入复选框的方法 方法一: 要在 word 2003 中加入复选框,最好是使用"控件工具箱"来完成. 具体方法是: 打开 Word ,依次点击 ...
- PyQt5 技巧篇-复选框绑定行内容,全选、清空、展示选中的内容功能实现演示,设置复选框选中,检查复选框选中状态
先看效果图,选中了几行,然后将选中的内容展示出来. 我设置两个有序序列,分别存储对应的复选框和行内容. 我的行内容是用的 label 标签. # 存储右边label组件的有序列表def get_L_b ...
- 复选框全选效果,根据单个复选框的选择情况确定全选复选框是否被选
复选框全选与全不选效果 逻辑:复选框的checked属性与复选框全选效果对应起来,全选复选框checked:true 时,全部复选框checked:true: 全选框checked:false 时,全 ...
- Flutter:使用复选框进行下拉多选
Flutter:使用复选框进行下拉多选 本文向您展示了在 Flutter 中使用复选框实现下拉多选的两种不同方法.在第一种方法中,我们将从头开始构建多选.在第二种方法中,我们将使用第三方包快速完成工作 ...
- axure实现复选框全选_jq简单的全选、反选和全不选效果
jquery是很实用和方便的前端效果库,可以让我减少很多的操作和节省很多的时间.今天,我们来说一下jq的全选.全不选和反选效果,本篇讲的是最简单简洁的jq全选.全不选和反选的例子.如果还有什么其他的功 ...
- [Ext JS 4] 实战之多选下拉单 (带checkbox) 续 - 带ALL 选项
前言 在 [Ext JS 4] 实战之多选下拉单 (带checkbox) 这一篇中有介绍如何开发带有checkbox 的多选菜单. 但是实际项目开发过程中, 用户的需求也是不断精进的. 使用淘宝或是其 ...
- java得到选择的复选框_java怎么获取复选框的值_java学习记录20200817
2020.08.17-2020.08.23学习计划: (1)完成前端知识积累HTML+CSS+JavaScript(周一至周四) (2)完成ssm两门课复习(周一至周五) (3)完成所有已学代码的熟悉 ...
最新文章
- 2021年九月最新Java面试必背八股文,338道最新大厂架构面试题
- 【pytorch】pytorch自定义训练vgg16和测试数据集 微调resnet18全连接层
- 太强了!这个 Jupyter notebook 离线工具可以用一辈子!
- Java黑皮书课后题第5章:**5.45(统计:计算平均值和标准方差)在商务应用中……编写一个程序,提示用户输入10个数字,然后运用下面的公式,显示这些数字的平均值以及标准方差
- matlab2010a连接mysql_MATLAB2010a+OpenCV2.3.1+VS2010运行TLD
- drcom linux怎么运行,linux下使用drcom登录认证
- java随机抽取_java 随机抽取案例,不重复抽取
- 使用 APPLY 来为每行调用表值函数
- cordova android ios
- 181007扇贝有道每日一句
- 【疾病分类】基于matlab GUI模糊逻辑分类叶病严重程度分级系统【含Matlab源码 194期】
- 下载各种百度文库以及豆丁网文章的简便方法
- OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x000001faf3e50000
- cas5.2集成ldap
- Photoshop实用的快捷键大全
- codeforces-831A(Unimodal Array)
- 通过温度湿度计算露点
- PNP三极管和NPN三极管的开关电路(EC极性接线判断简单明了)简单的技巧:三极管上箭头所在方向的二极管,只要二极管正向导通,那么三极管上下就能导通。
- 如何用CSDN发布文章
- 音视频入门 (iOS上fdk-aac的交叉编译)
热门文章
- 【uni-app】深度作用选择器解决修改checkbox样式无效问题
- Oracle的UNION函数
- Matlab中pickic_法语「野餐」怎么写?不是picnic哦
- mysql索引失效_导致MySQL索引失效的几种常见写法
- 【Java】5.2 方法详解
- Spring Boot 线程池的创建、@Async 配置步骤及注意事项
- No module named MNIST_写给小白的用fashion-mnist入门机器学习和深度学习的简单项目(非常全面!!!)...
- java优先队列PriorityQueue修改队列内元素排序问题
- java 利用dfs生成简单的随机迷宫(效率不高)
- webpack从入门到精通(三)生产环境的基本配置