扩展WPF的TreeView,完成数据绑定和拖拽功能

本文介绍了如何扩展WPF的标准TreeView控件,以支持数据绑定和拖拽功能。通过定义TreeNode的Model,使用HierarchicalDataTemplate进行节点绑定,以及实现拖拽接口,可以创建具备拖放操作的自定义TreeView。在实现过程中,注意到TreeView的AllowDrop属性需设为true以启用拖拽功能。
摘要由CSDN通过智能技术生成

WPF看了很长时间了,但一直没怎么动手实践,正好任务需要,扩展了WPF的标准TreeView控件,并作为基础控件,支持下面的功能:

  • 数据绑定
  • 拖拽

下载地址: https://download.csdn.net/download/jfyy/11107213

 

控件做好后的使用方法:

  1. 先定义TreeNode的Model,Model用来定义TreeNode的状态。
public class TreeNode : ViewModelBase, IDargDropMgr
    {
        private List<TreeNode> children;

        public TreeNode(string name)
        {
            Name = name;
            Menu = new ContextMenu();
            Menu.Items.Add(new MenuItem() { Header = "Test" });
            CanDrop = true;
        }
        public List<TreeNode> Children
        {
            get
            {
                return children;
            }
            set
            {
                children = value;
                OnPropertyChanged("Children");
            }
        }
        public string Name
        {
            get;
            set;
        }

        private ContextMenu menu;

        public ContextMenu Menu
        {
            get { return menu; }
            set { menu = value; OnPropertyChanged("Menu"); }
        }

使用派生TreeView的MyTreeView,使用时,创建好Model后,用下面语句就能完成TreeView的创建。

<local:MyTreeView x:Name="MainTreeView" ItemsSource="{Binding TreeNodes}">

 

具体实现方法:

1. 在网上找到下面的代码,完成TreeNode节点名字和Ima

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值