WPF MVVM模式 带CheckBox的树形图
前不久做项目中有设计到树形图,还是带CheckBox的树形图,可伤我这种小白的脑筋了,上网找了好多资料参考写出来了,下面来看一下:
首先看这个带CheckBox树形图长啥样,只是一个简单的二级菜单,如下图:
我们先来写一个Model,里面包含我们需要的数据信息,如下图:
首先是三个我们需要用到的变量,节点名称、父节点和子节点
然后是CheckBox的选中事件定义,选中子节点的同时父节点也会选中,若取消选中父节点其所有选中的子节点亦取消选中,代码如下图:
接着是树形图节点列表的收展事件,代码如下图:
在构造函数里初始化定义,初始默认所有节点全选,树形列表默认展开,代码如下图:
Model写好后就来写ViewModel, 包含了View所需要的属性,定义树形图的数据,代码如下图:
要在ViewModelLocator中注册我们刚刚写好的ViewModel,代码如下图:
最后我们来编写View视图,代码如下图:
最后启动运行就可以看到带CheckBoxde 树形图啦!
那么本篇学习文章就分享到这里啦!若有不足的地方,还望请多多指教!
WPF MVVM模式 带CheckBox的树形图相关推荐
- 使用WPF+MVVM模式的小案例
WPF+MVVM模式的小案例案例主要的目录结构 下面一步一步建立整个小程序的目录和相应的代码程序. 1.打开VS, 新建项目WPFDemo.Client.CustType(自己可以写自己的程序名称,这 ...
- WPF自学入门(十一)WPF MVVM模式Command命令 WPF自学入门(十)WPF MVVM简单介绍...
WPF自学入门(十一)WPF MVVM模式Command命令 在WPF自学入门(十)WPF MVVM简单介绍中的示例似乎运行起来没有什么问题,也可以进行更新.但是这并不是我们使用MVVM的正确方式.正 ...
- wpf mvvm模式下CommandParameter传递多参
wpf mvvm模式下CommandParameter传递多参 原文:wpf mvvm模式下CommandParameter传递多参 CommandParameter一般只允许设置一次,所以如果要传递 ...
- C# WPF MVVM模式Prism框架下事件发布与订阅
01 - 前言 处理同模块不同窗体之间的通信和不同模块之间不同窗体的通信,Prism提供了一种事件机制,可以在应用程序中低耦合的模块之间进行通信,该机制基于事件聚合器服务,允许发布者和订阅者之间通过事 ...
- C# WPF MVVM模式Prism框架从零搭建(经典)
01 - 前言 目前最新的PRISM的版本是8.1.97,本节以6.3.0.0 讲解,可以在Github上获取PRISM的源码. Prism Github地址:https://github.com/P ...
- WPF MVVM模式 发送DataGird表格的数据到另一个页面显示
WPF MVVM模式 发送DataGird表格的数据到另一个页面显示 这里我们是使用Messenger消息机制把这个页面的表格行数据发送到另一个页面显示,效果如下图: 首先在这个表格页面的ViewMo ...
- C# WPF MVVM模式Caliburn.Micro框架下事件发布与订阅
01 - 前言 处理同模块不同窗体之间的通信和不同模块之间不同窗体的通信,Caliburn提供了一种事件机制,可以在应用程序中低耦合的模块之间进行通信,该机制基于事件聚合器服务,允许发布者和订阅者之间 ...
- C# WPF MVVM模式下在主窗体显示子窗体并获取结果
01 - 前言 在winform中打开一个新的子窗体很简单,直接实例化窗体并show一下就可以: Form2 f2 = new Form2();f2.Show(); 或者 Form2 f2 = new ...
- WPF MVVM模式下的无阻塞刷新
MVVM模式下的无阻塞刷新的两种方法: //传统模式下的无刷新调用(主线程开新线程,新线程又调用主线程来更新UI) //第1步先在线程内部计算出需要绑定的数据 //第2步然后再使用Invoke/Beg ...
最新文章
- Spring-data-jpa和mybatis的比较及两者的优缺点?
- datetimepicker控件怎么改变hover颜色_VBA入门课程,ActiveX控件系列知识,复合框的属性与常见VBA代码...
- 网易实战分享|实时音视频会议场景下QoS策略
- HDU1164 Eddy's research I【素因子分解】
- boost::mp11::mp_set_push_back相关用法的测试程序
- c++ 9.程序流程结构
- Linux下建立多实例Tomcat(独立JVM)
- matlab中m文件与m函数的学习与理解
- 远程配置jupyter notebook
- Firefox必备插件
- 面试百题066——颠倒栈
- allwinner 全志uboot git网址 及其他相关链接
- Stellar Phoenix Office Repair(Office修复工具)v6.2绿色版
- 库存商品计算成本的几种方法
- MATLAB实现短时傅里叶变换
- 蓝桥杯第十届c语言试题答案,[蓝桥杯][2019年第十届真题]空间跳跃 - C语言网
- The Easter Proclamation (Exsultet) / 逾越颂
- CS(反恐精英)奥林匹克运动会
- 结合Bootstrap实现头像上传前预览
- C++时间与日期及相关操作
热门文章
- scanf 在uefi中调用_BIOS、UEFI、Boot Loader都是些什么
- Android build.gradle文件详解(转述自《Android第一行代码》第二版)
- 自学python3 最好的入门书籍-学习python3入门书籍选哪些?
- python入门指南-Python 30分钟入门指南
- 用matlab仿真0到9十个数字的语音识别
- android开发mvp,Android开发模式之MVP
- 计算机网络重点知识总结 谢希仁版,计算机网络谢希仁版网络层知识点总结
- vue实现树形结构增删改查
- 【数据结构和算法笔记】KMP算法介绍
- ijkplayer-旋转角度实现