TreeView级联复选

本文详细描述了如何在Windows应用中使用Prism框架和MVVM模式实现TreeView的数据绑定,包括ModuleNode和MainViewModel的设计,以及处理CheckBox的三态选择和父级节点状态同步的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

blog-hbh-hc-header

目标效果

初始加载

在这里插入图片描述

选中叶子节点

在这里插入图片描述

操作中间节点

在这里插入图片描述

实现思路

TreeView数据源集合的子项ViewModel部分

BindableBasePrism中对应的Vm基类,读者也可以按自身需求实现属性通知接口(INotifyPropertyChanged)的基类。

    public class ModuleNode:BindableBase
    {

        //public bool IsChecked { get; set; } //属性需要设置为可空类型
		//复选框状态
        private bool? isChecked;
        public bool? IsChecked
        {
            get { return isChecked; }
            set { SetProperty(ref isChecked, value); }
        }
        
        // 子节点集合
        public List<ModuleNode> Children { get; set; }
		// 父节点对象
        public ModuleNode Parent { get; set; }
    }
主页面ViewModel
public class MainViewModel:BindableBase
{
	public DelegateCommand<ModuleNode> ModuleCkCommand { get; set; }
	public MainViewModel()
	{
		ModuleCkCommand = new DelegateCommand<ModuleNode>(ModuleCkMethod);
	}
	
	/// <summary>
    /// 模块选中函数
    /// </summary>
    /// <param
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值