前不久做项目中有设计到树形图,还是带CheckBox的树形图,可伤我这种小白的脑筋了,上网找了好多资料参考写出来了,下面来看一下:

首先看这个带CheckBox树形图长啥样,只是一个简单的二级菜单,如下图:

我们先来写一个Model,里面包含我们需要的数据信息,如下图:

首先是三个我们需要用到的变量,节点名称、父节点和子节点

然后是CheckBox的选中事件定义,选中子节点的同时父节点也会选中,若取消选中父节点其所有选中的子节点亦取消选中,代码如下图:

接着是树形图节点列表的收展事件,代码如下图:

在构造函数里初始化定义,初始默认所有节点全选,树形列表默认展开,代码如下图:

Model写好后就来写ViewModel, 包含了View所需要的属性,定义树形图的数据,代码如下图:

要在ViewModelLocator中注册我们刚刚写好的ViewModel,代码如下图:

最后我们来编写View视图,代码如下图:

最后启动运行就可以看到带CheckBoxde 树形图啦!

那么本篇学习文章就分享到这里啦!若有不足的地方,还望请多多指教!

WPF MVVM模式 带CheckBox的树形图相关推荐

  1. 使用WPF+MVVM模式的小案例

    WPF+MVVM模式的小案例案例主要的目录结构 下面一步一步建立整个小程序的目录和相应的代码程序. 1.打开VS, 新建项目WPFDemo.Client.CustType(自己可以写自己的程序名称,这 ...

  2. WPF自学入门(十一)WPF MVVM模式Command命令 WPF自学入门(十)WPF MVVM简单介绍...

    WPF自学入门(十一)WPF MVVM模式Command命令 在WPF自学入门(十)WPF MVVM简单介绍中的示例似乎运行起来没有什么问题,也可以进行更新.但是这并不是我们使用MVVM的正确方式.正 ...

  3. wpf mvvm模式下CommandParameter传递多参

    wpf mvvm模式下CommandParameter传递多参 原文:wpf mvvm模式下CommandParameter传递多参 CommandParameter一般只允许设置一次,所以如果要传递 ...

  4. C# WPF MVVM模式Prism框架下事件发布与订阅

    01 - 前言 处理同模块不同窗体之间的通信和不同模块之间不同窗体的通信,Prism提供了一种事件机制,可以在应用程序中低耦合的模块之间进行通信,该机制基于事件聚合器服务,允许发布者和订阅者之间通过事 ...

  5. C# WPF MVVM模式Prism框架从零搭建(经典)

    01 - 前言 目前最新的PRISM的版本是8.1.97,本节以6.3.0.0 讲解,可以在Github上获取PRISM的源码. Prism Github地址:https://github.com/P ...

  6. WPF MVVM模式 发送DataGird表格的数据到另一个页面显示

    WPF MVVM模式 发送DataGird表格的数据到另一个页面显示 这里我们是使用Messenger消息机制把这个页面的表格行数据发送到另一个页面显示,效果如下图: 首先在这个表格页面的ViewMo ...

  7. C# WPF MVVM模式Caliburn.Micro框架下事件发布与订阅

    01 - 前言 处理同模块不同窗体之间的通信和不同模块之间不同窗体的通信,Caliburn提供了一种事件机制,可以在应用程序中低耦合的模块之间进行通信,该机制基于事件聚合器服务,允许发布者和订阅者之间 ...

  8. C# WPF MVVM模式下在主窗体显示子窗体并获取结果

    01 - 前言 在winform中打开一个新的子窗体很简单,直接实例化窗体并show一下就可以: Form2 f2 = new Form2();f2.Show(); 或者 Form2 f2 = new ...

  9. WPF MVVM模式下的无阻塞刷新

    MVVM模式下的无阻塞刷新的两种方法: //传统模式下的无刷新调用(主线程开新线程,新线程又调用主线程来更新UI) //第1步先在线程内部计算出需要绑定的数据 //第2步然后再使用Invoke/Beg ...

最新文章

  1. Spring-data-jpa和mybatis的比较及两者的优缺点?
  2. datetimepicker控件怎么改变hover颜色_VBA入门课程,ActiveX控件系列知识,复合框的属性与常见VBA代码...
  3. 网易实战分享|实时音视频会议场景下QoS策略
  4. HDU1164 Eddy's research I【素因子分解】
  5. boost::mp11::mp_set_push_back相关用法的测试程序
  6. c++ 9.程序流程结构
  7. Linux下建立多实例Tomcat(独立JVM)
  8. matlab中m文件与m函数的学习与理解
  9. 远程配置jupyter notebook
  10. Firefox必备插件
  11. 面试百题066——颠倒栈
  12. allwinner 全志uboot git网址 及其他相关链接
  13. Stellar Phoenix Office Repair(Office修复工具)v6.2绿色版
  14. 库存商品计算成本的几种方法
  15. MATLAB实现短时傅里叶变换
  16. 蓝桥杯第十届c语言试题答案,[蓝桥杯][2019年第十届真题]空间跳跃 - C语言网
  17. The Easter Proclamation (Exsultet) / 逾越颂
  18. CS(反恐精英)奥林匹克运动会
  19. 结合Bootstrap实现头像上传前预览
  20. C++时间与日期及相关操作

热门文章

  1. scanf 在uefi中调用_BIOS、UEFI、Boot Loader都是些什么
  2. Android build.gradle文件详解(转述自《Android第一行代码》第二版)
  3. 自学python3 最好的入门书籍-学习python3入门书籍选哪些?
  4. python入门指南-Python 30分钟入门指南
  5. 用matlab仿真0到9十个数字的语音识别
  6. android开发mvp,Android开发模式之MVP
  7. 计算机网络重点知识总结 谢希仁版,计算机网络谢希仁版网络层知识点总结
  8. vue实现树形结构增删改查
  9. 【数据结构和算法笔记】KMP算法介绍
  10. ijkplayer-旋转角度实现