Virtualizing Tree View 使用文档

本文介绍了一个利用VirtualizingTreeView插件创建本地视频播放器的过程,主要涉及数据绑定、事件监听、目录操作及双击播放等功能。代码示例展示了如何处理目录展开、选中、双击等事件,并提供了插件的下载链接。

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

树形结构使用插件Virtualizing Tree View Self Demo

前段时间公司要求开发了个本地视频播放器,使用Virtualizing Tree View插件编辑了视频目录,以下附部分核心代码

事件监听、数据绑定、目录展开、目录点击、双击、事件解除监听

        private void TreeViewAddEvent()
        {
            //数据绑定
            _tree.ItemDataBinding += DataBinding;
            //选中
            _tree.SelectionChanged += SelectionChanged;
            //展开
            _tree.ItemExpanding += Expanding;
            //双击
            VirtualizingItemContainer.DoubleClick += DoubleClick;

            _tree.Items = _treeNodes;
        }

        /// <summary>
        /// 双击
        /// </summary>
        /// <param name="_sender"></param>
        /// <param name="e"></param>
        public void DoubleClick(VirtualizingItemContainer _sender, PointerEventData e)
        {
            if (_sender.Item == null) return;

            if (_currentNode._type == Org.file)
            {

            }
        }

        /// <summary>
        /// 解除绑定
        /// </summary>
        private void TreeViewRemoveEvent()
        {
            _tree.ItemDataBinding -= DataBinding;
            _tree.SelectionChanged -= SelectionChanged;
            _tree.ItemExpanding -= Expanding;
            VirtualizingItemContainer.DoubleClick -= DoubleClick;
        }

        /// <summary>
        /// 展开和关闭
        /// </summary>
        /// <param name="_sender"></param>
        /// <param name="e"></param>
        private void Expanding(object _sender, VirtualizingItemExpandingArgs e)
        {
            var _data = e.Item as TreeView_Node;
            if (_data == null) return;
            e.Children = _data._children;
        }

        /// <summary>
        /// 选中
        /// </summary>
        /// <param name="_sender"></param>
        /// <param name="e"></param>
        public void SelectionChanged(object _sender, SelectionChangedArgs e)
        {
            if (e.NewItem == null) return;
            var _treeNode = e.NewItem as TreeView_Node;
            _currentNode = _treeNode;
            if (_currentNode._type == Org.file)
            {

            }
        }

        /// <summary>
        /// 绑定数据
        /// </summary>
        /// <param name="_sender"></param>
        /// <param name="e"></param>
        private void DataBinding(object _sender, VirtualizingTreeViewItemDataBindingArgs e)
        {
            var _treeNode = e.Item as TreeView_Node;

            if (_treeNode == null) return;
            e.HasChildren = _treeNode._children.Count > 0;
            var _item = e.ItemPresenter.GetComponent<TreeView_UIItem>();
            _item._tetx.text = _treeNode._name;

            if (_treeNode._type == Org.file)
            {
                _item._icon.gameObject.SetActive(false);
            }
            else if (_treeNode._type == Org.folder)
            {
                _item._icon.sprite = _item.icon_file;
                _item._icon.gameObject.SetActive(true);
            }
        }

插件具体使用Demo下载链接:VirtualizingTreeViewSelfDemo-互联网文档类资源-优快云下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值