【prism】路由事件映射到Command命令
在之前的一篇文章中,我介绍了普通的自定义事件:
【wpf】自定义事件总结(Action, EventHandler)_code bean的博客-CSDN博客_wpf action可以说通过Action和EventHandle,自定义事件是相当的方便简单了。https://blog.csdn.net/songhuangong123/article/details/126251575?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167602845516800192279505%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=167602845516800192279505&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-2-126251575-null-null.article_score_rank_blog&utm_term=%E4%BA%8B%E4%BB%B6&spm=1018.2226.3001.4450#:~:text=%E3%80%90wpf%E3%80%91%E8%87%AA%E5%AE%9A%E4%B9%89%E4%BA%8B%E4%BB%B6%E6%80%BB%E7%BB%93%EF%BC%88Action%EF%BC%8C%20EventHandler%EF%BC%89但是我发现如果你想将自定义的事件,和命令关联起来,普通事件是不行的。
路由事件映射到Command
通常我映射事件到Command如下:
<i:Interaction.Triggers><i:EventTrigger EventName="LeftValueChange"><prism:InvokeCommandAction Command="{Binding ThresholdLeftCmd}"/></i:EventTrigger>
</i:Interaction.Triggers>
LeftValueChange是我自定义的事件,如果是普通的事件,这样的换无法触发命令。
自定义路由事件
我们需要自定义一个路由事件:
//声明和注册路由事件public static readonly RoutedEvent LeftValueChangeEvent =EventManager.RegisterRoutedEvent("LeftValueChange", RoutingStrategy.Bubble, typeof(EventHandler<RoutedEventArgs>), typeof(RangeSelectionControl));//CLR事件包装public event RoutedEventHandler LeftValueChange{add { this.AddHandler(LeftValueChangeEvent, value); }remove { this.RemoveHandler(LeftValueChangeEvent, value); }}
路由事件的触发
它的出发也和普通事件不一样:
先构造一个 RoutedEventArgs,第一个参数传入路由事件,第二参数传入事件带的参数,
然后调用RaiseEvent出发改事件:
//事件触发
RoutedEventArgs args = new RoutedEventArgs(LeftValueChangeEvent, LeftValue);
this.RaiseEvent(args);
这样事件就能映射到命令了!:)
命令的定义
注意这里的 泛型的类型为:RoutedEventArgs
以及访问参数的方式:OriginalSource
public DelegateCommand<RoutedEventArgs> ThresholdLeftCmd { get; set; }//二值化
ThresholdLeftCmd = new DelegateCommand<RoutedEventArgs>((x) => {thresholdLeft = int.Parse(x.OriginalSource.ToString());UpdataThreshold();
});
相关文章:
【prism】路由事件映射到Command命令
在之前的一篇文章中,我介绍了普通的自定义事件: 【wpf】自定义事件总结(Action, EventHandler)_code bean的博客-CSDN博客_wpf action可以说通过Action和EventHandle,自定义事件是相当的方便简单了。https…...
面向对象的基本概念和方法
面向对象的开发方法在近几十年见得以广泛应用,我们常见的Java语言就是一种典型的面向对象的开发语言。然而,面向对象的概念较为复杂,知识点也很细碎,本文整理了面向对象的基本概念和方法,供大家参考。为了便于读者理解…...
数据可视化大屏百度地图绘制行政区域标注实战案例解析(个性化地图、标注、视频、控件、定位、检索)
百度地图开发系列目录 数据可视化大屏应急管理综合指挥调度系统完整案例详解(PHP-API、Echarts、百度地图)数据可视化大屏百度地图API开发:停车场分布标注和检索静态版百度地图高级开发:map.getDistance计算多点之间的距离并输入…...
1.面向对象和类的关系?2.什么是Promise、3.Promise和async、await的关系
面向对象:面向对象是一种编程思想(oop)。(Js里面所有的东西都可以看做对象,Js它是基于原型的面向对象语言,采用原型的方式来构造对象)很多个具有相同属性和行为的对象就可以抽象为类,对象是类的一个实例。JavaScript在…...
【程序化天空盒】过程记录01:日月 天空渐变 大气散射
1 日月 SunAndMoon 昼夜的话肯定少不了太阳和月亮,太阳和月亮实现的道理是一样的,只不过是月亮比太阳多了一个需要控制月牙程度(or添加贴图)的细节~ 1.1 Sun 太阳的话很简单,直接在shader里实现一个太阳跟随平行光旋…...
无线通信中的轨道角动量
目录 一. 前言 二. 如何传输 三. 如何产生 3.1 螺旋结构器件 (1)螺旋相位板 (2)螺旋抛物面天线 3.2 超表面 3.3 天线阵列 3.3.1 相控阵 3.3.2 时控阵 四. 如何识别 一. 前言 轨道角动量:Orbital Angular M…...
以后更新功能,再也不用App发版了!智能小程序将为开发者最大化减负
在 IoT 时代,越来越多的企业意识到打造自有 App 对于品牌的重要性。作为智能设备不可或缺的控制终端,App 具备连接用户、完善服务、精细化运营用户的独特优势,可帮助企业大大提升品牌竞争力。 为了帮助品牌企业打造更具个性化、差异化的智能…...
C++之类模板全特化和偏特化
类模板类模板是通用类的描述,使用任意类型(泛型)来描述类的定义。使用类模板的时候,指定具体的数据类型,让编译器生成该类型的类定义。注意:函数模板中可以不指定具体数据类型,让编译器自动推到…...
Python 手写数字识别 MNIST数据集下载失败
目录 一、MNIST数据集下载失败 1 失败的解决办法(经验教训): 2 亲测有效的解决方法: 一、MNIST数据集下载失败 场景复现:想要pytorchMINIST数据集来实现手写数字识别,首先就是进行MNIST数据集的下载&am…...
华为机试题:HJ61 放苹果(python)
文章目录博主精品专栏导航知识点详解1、input():获取控制台(任意形式)的输入。输出均为字符串类型。1.1、input() 与 list(input()) 的区别、及其相互转换方法2、print() :打印输出。3、整型int() :将指定进制…...
【论文速递】ICCV2021 - 基于超相关压缩实现实时高精度的小样本语义分割
【论文速递】ICCV2021 - 基于超相关压缩的小样本语义分割 【论文原文】:Hypercorrelation Squeeze for Few-Shot Segmentation 【作者信息】:Juhong Min Dahyun Kang Minsu Cho 获取地址:https://openaccess.thecvf.com/content/ICCV2021/…...
单例模式(Singleton Pattern)
目录 1.什么是单例模式: 2.单例模式存在的原因: 3.单例模式的优缺点: 4.创建方式: 1. 单线程单例模式立即创建(饿汉式): 2. 单线程单例模式延迟创建(懒汉式)…...
docker file和compose
文章目录1.dockerfile(单机脚本)1.概念2.原理3.dockerfile核心四步4.命令2.docker compose1.概念2.注意事项3.常用字段4.常用命令1.dockerfile(单机脚本) 1.概念 通过脚本,生成一个镜像,并运行对应的容器…...
如何解决thinkphp验证码不能显示问题?
thinkPHP做验证码这一块,可以使用自带的验证码扩展,具体步骤如下: 一、安装扩展 composer require topthink/think-captcha 二、模版中使用 将原来静态页面的验证码图片替换为{:captcha_img()},这个会自动生成验证码图片。 <div>{:captcha_img()}</div> 或者 &…...
Vue极简使用
Vue安装Vue模板语法安装Vue 安装nodejs 这里我安装的是14.5.4版本 https://nodejs.org/download/release/v14.15.4/解压后配置一下环境变量就行 安装cnpm镜像 (这个安装的版本可能过高,后面安装Vue可能出问题) npm install -g cnpm --registryhttps://registry…...
【Nacos】Nacos配置中心服务端源码分析
上文说了Nacos配置中心客户端的源码流程,这篇介绍下Nacos配置中心服务端的源码。 服务端的启动 先来看服务启动时干了啥? init()方法上面有PostConstruct,该方法会在ExternalDumpService实例化后执行。 com.alibaba.nacos.config.server.s…...
第十五章 栅格数据重分类、栅格计算器、插值分析
文章目录第十五章 栅格数据分析第一章 栅格数据重分类第一节 栅格数据重分类第二节 栅格重分类的使用第三节 重分类的使用中的空值使用第四节 重分类的案例:分类统计面积第五节 坡度矢量分级图生成第二章 栅格计算器第一节 栅格计算器介绍第二节 栅格计算器使用第三…...
CS5260测试版|CS5260demoboard|typec转VGA参考PCB原理图
CS5260测试版|CS5260demoboard|typec转VGA参考PCB原理图 CS5260是一款高度集成的TYPEC转VGA转换方案芯片。 CS5260输出端接口:外接高清VGA设备如:显示器投影机电视带高清的设备,广泛应用于 笔记本Macbook Air 12寸USB3.1输出端对外接高清VGA设备如:显示器投影机电视…...
winform开发心得
最近一直在从事winform的开发,每次都是需要从网上查找资料才能对应具体风格要求,现在总结一下。 ui方面可以使用CSkin对应的一套ui,使用步骤 1.在窗口界面,工具箱空白处点击右键,弹出菜单有个”选择项“,点…...
学习周报-2023-0210
文章目录一 在SUSE11sp3系统中将openssh从6升级到8一 需求二 系统环境三 部署流程1.上传编译安装的软件包2.安装 gcc编译软件3.安装依赖zlib4.安装依赖openssl5.安装openssh二 在CentOS-6.9配置apache服务(3)---虚拟主机配置一 定义二 系统环境三 基于域…...
NoFences终极指南:免费开源桌面分区工具彻底解决Windows桌面混乱问题
NoFences终极指南:免费开源桌面分区工具彻底解决Windows桌面混乱问题 【免费下载链接】NoFences 🚧 Open Source Stardock Fences alternative 项目地址: https://gitcode.com/gh_mirrors/no/NoFences 还在为杂乱的Windows桌面而烦恼吗࿱…...
086、Python数据压缩与归档:zipfile与tarfile实战笔记
086、Python数据压缩与归档:zipfile与tarfile实战笔记 一、从线上故障说起 上周排查一个生产环境问题:某服务每天生成的日志文件把磁盘撑满了。 查看代码发现,开发同事用 open().write() 直接写文本,一年下来积累了上千个文件。 其实这类场景最适合用压缩归档——既节省空…...
Box64终极指南:5分钟学会在ARM设备上运行x86_64程序
Box64终极指南:5分钟学会在ARM设备上运行x86_64程序 【免费下载链接】box64 Box64 - Linux Userspace x86_64 Emulator with a twist, targeted at ARM64, RV64 and LoongArch Linux devices 项目地址: https://gitcode.com/gh_mirrors/bo/box64 你是否曾经梦…...
别再写for循环了!用Java8的groupingBy,一行代码搞定员工按城市分组统计
告别繁琐循环:Java8 groupingBy在数据分组统计中的革命性应用 每次面对从数据库查询出的员工列表,需要按城市、部门或职级进行分组统计时,你是否还在写着重复的for循环?那些嵌套的if判断、临时变量和累加操作不仅让代码臃肿不堪&a…...
保姆级教程:在Win10上用VS2022搞定TensorRT 8.5.2.2(含zlibwapi.dll缺失等常见坑点)
从零到一:Windows 10 VS2022 深度集成 TensorRT 8.5 全流程实战 TensorRT 作为 NVIDIA 推出的高性能深度学习推理引擎,能够显著提升模型在 NVIDIA GPU 上的执行效率。但对于 Windows 平台的新手开发者来说,从环境配置到第一个示例程序成功运…...
CodeGPT:基于AI的Git提交信息自动生成工具实战指南
1. 项目概述:CodeGPT,一个用Go写的AI驱动Git工具 如果你和我一样,每天都要在终端里敲无数次 git commit -m "..." ,并且为写一个清晰、规范的提交信息而绞尽脑汁,那今天分享的这个工具绝对能让你眼前一亮…...
基于Lepton AI构建对话式搜索引擎:RAG技术实践指南
1. 项目概述:用Lepton AI构建你的对话式搜索引擎 如果你对AI应用开发感兴趣,尤其是想快速搭建一个能理解自然语言、并能联网搜索的智能助手,那么“Search with Lepton”这个项目绝对值得你花时间研究。它本质上是一个开源的对话式搜索引擎框…...
gRPC流量分析实战:用cursor-tap工具实现AI对话可视化与游戏集成
1. 项目概述:从零到一,打造一个能“监听”AI对话的独立游戏 最近在折腾一个挺有意思的玩意儿,叫 cursor-tap 。这名字听起来有点神秘,对吧?简单来说,它是一个用来分析 gRPC 通信流量的工具。但如果你以为…...
RAG系统安全攻防:从PoisonedRAG看检索增强生成的风险与防御
1. 项目概述:当检索增强生成遭遇“毒药”最近在开源社区里,一个名为“PoisonedRAG”的项目引起了我的注意。这个名字本身就充满了戏剧性——“中毒的RAG”。作为一名长期关注大语言模型应用落地的从业者,我立刻意识到,这绝不是一个…...
TrendForge 每日精选:10 个热门开源项目,今日总获星 11321 颗!
TrendForge 每日精选热门开源项目发布 TrendForge 致力于追踪全球开源项目动态,每日为开发者精选最具价值的 GitHub 项目。今日共收录 10 个热门项目,项目描述已自动翻译为智能中文翻译版,便于理解。 今日最热项目 Top 10 mattpocock/skills&…...
