首页 > 其他分享 >HandyControl TagContainer

HandyControl TagContainer

时间:2023-10-08 16:35:06浏览次数:36  
标签:HandyControl Tag1 item list Controls TagContainer Tag

 tag 关闭时 无法获取到要关闭的标签

于是改写一下TagContainer

   public class TagContainer1 : ItemsControl
    {
        public TagContainer1()
        {
            AddHandler(HandyControl.Controls.Tag.ClosedEvent, new RoutedEventHandler(Tag_OnClosed));
        }

        public object CloseTag;
        private void Tag_OnClosed(object sender, RoutedEventArgs e)
        {
            if (e.OriginalSource is HandyControl.Controls.Tag Tag1)
            {
                CloseTag = null;
                var r = ShowMsgUtil.Question($"确定删除[{Tag1.Content}]吗?");
                if (r != MessageBoxResult.Yes) return;
                Tag1.Hide();
                CloseTag = Tag1.DataContext;
                if (ItemsSource == null)
                {
                    Items.Remove(Tag1);
                }
                else
                {
                    var item = ItemContainerGenerator.ItemFromContainer(Tag1);
                    GetActualList()?.Remove(item);
                    Items.Refresh();
                }
            }
        }

        internal IList GetActualList()
        {
            IList list;
            if (ItemsSource != null)
            {
                list = ItemsSource as IList;
            }
            else
            {
                list = Items;
            }

            return list;
        }

        protected override DependencyObject GetContainerForItemOverride() => new HandyControl.Controls.Tag();

        protected override bool IsItemItsOwnContainerOverride(object item) => item is HandyControl.Controls.Tag;
    }

 

标签:HandyControl,Tag1,item,list,Controls,TagContainer,Tag
From: https://www.cnblogs.com/simadi/p/17749522.html

相关文章

  • 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(6) -- 窗口控
    在我们窗口新增、编辑状态下的时候,我们往往会根据是否修改过的痕迹-也就是脏数据状态进行跟踪,如果用户发生了数据修改,我们在用户退出窗口的时候,提供用户是否丢弃修改还是继续编辑,这样在一些重要录入时的时候,可以避免用户不小心关掉窗口,导致窗口的数据要重新录入的尴尬场景。本篇随......
  • 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(5) -- 树列表
    在我们展示一些参考信息的时候,有所会用树形列表来展示结构信息,如对于有父子关系的多层级部门机构,以及一些常用如字典大类节点,也都可以利用树形列表的方式进行展示,本篇随笔介绍基于WPF的方式,使用TreeView来洗实现结构信息的展示,以及对它的菜单进行的设置、过滤查询等功能的实现逻辑......
  • 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(4) -- 实现Da
    在我们设计软件的很多地方,都看到需要对表格数据进行导入和导出的操作,主要是方便客户进行快速的数据处理和分享的功能,本篇随笔介绍基于WPF实现DataGrid数据的导入和导出操作。1、系统界面设计在我们实现数据的导入导出功能之前,我们在主界面需要提供给客户相关的操作按钮,如下界面......
  • 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(3)--自定义用
    在我们创建界面元素的时候,不管在Vue3+ElementPlus的前端上,还是Winform桌面端上,都是会利用自定义用户控件来快速重用一些自定义的界面内容,对自定义用户控件的封装处理,也是我们开发WPF应用需要熟悉的一环。本篇随笔继续深入介绍介绍基于CommunityToolkit.Mvvm和HandyControl的WPF应......
  • 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(2)
    在前面随笔《循序渐进介绍基于CommunityToolkit.Mvvm和HandyControl的WPF应用端开发(1)》中介绍了Mvvm的开发,以及一些界面效果,本篇随笔继续深入探讨基于CommunityToolkit.Mvvm和HandyControl的WPF应用端开发,介绍如何整合SqlSugar框架的基础接口,通过基类继承的方式,简化实际项目......
  • 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(1)
    在我们的SqlSugar的开发框架中,整合了Winform端、Vue3+ElementPlus的前端、以及基于UniApp+Vue+ThorUI的移动前端几个前端处理,基本上覆盖了我们日常的应用模式了,本篇随笔进一步介绍前端应用的领域,研究集成WPF的应用端,循序渐进介绍基于CommunityToolkit.Mvvm和HandyControl的WPF应......
  • WPF如何构建MVVM+Prism+HandyControl ,模块化的桌面应用
    为何模块化模块化是一种分治思想,不仅可以分离复杂的业务逻辑,还可以进行不同任务的分工。模块与模块之间相互独立,从而构建一种松耦合的应用程序,便于开发和维护。开发技术.Net6+WPF+Prism(v8.0.0.1909)+HandyControl(v3.4.0)知识准备什么是MVVMModel-View-ViewModel......
  • WPF控件库之HandyControl
    HandyControl介绍HandyControl是一套WPF控件库,它几乎重写了所有原生样式,同时包含80余款自定义控件(正逐步增加)。安装使用github地址:https://github.com/HandyOrg/HandyControl官网地址:https://handyorg.github.io/......
  • handyControl使用datagrid
    使用HandyControl实现多选的DataGrid 本文在MVVM模式先实现了基于HandyControl的DataGrid多选,同时展示了为DataGrid单元格显示不同颜色的方法,开发环境为:WPF+Prism+HandyControl。  1、添加多选列<DataGridTemplateColumnWidth="Auto"><DataGridTemplateColu......
  • WPF常用UI库和图表库(MahApps、HandyControl、LiveCharts)
    WPF常用UI库和图标库(MahApps、HandyControl、LiveCharts)WPF有很多开源免费的UI库,本文主要介绍常见的MahApps、HandyControl两个UI库;在开发过程中经常会涉及到图表的开发,本......