当前位置: 首页 > news >正文

【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命令

在之前的一篇文章中&#xff0c;我介绍了普通的自定义事件&#xff1a; 【wpf】自定义事件总结&#xff08;Action&#xff0c; EventHandler&#xff09;_code bean的博客-CSDN博客_wpf action可以说通过Action和EventHandle&#xff0c;自定义事件是相当的方便简单了。https…...

面向对象的基本概念和方法

面向对象的开发方法在近几十年见得以广泛应用&#xff0c;我们常见的Java语言就是一种典型的面向对象的开发语言。然而&#xff0c;面向对象的概念较为复杂&#xff0c;知识点也很细碎&#xff0c;本文整理了面向对象的基本概念和方法&#xff0c;供大家参考。为了便于读者理解…...

数据可视化大屏百度地图绘制行政区域标注实战案例解析(个性化地图、标注、视频、控件、定位、检索)

百度地图开发系列目录 数据可视化大屏应急管理综合指挥调度系统完整案例详解&#xff08;PHP-API、Echarts、百度地图&#xff09;数据可视化大屏百度地图API开发&#xff1a;停车场分布标注和检索静态版百度地图高级开发&#xff1a;map.getDistance计算多点之间的距离并输入…...

1.面向对象和类的关系?2.什么是Promise、3.Promise和async、await的关系

面向对象:面向对象是一种编程思想&#xff08;oop&#xff09;。(Js里面所有的东西都可以看做对象&#xff0c;Js它是基于原型的面向对象语言&#xff0c;采用原型的方式来构造对象)很多个具有相同属性和行为的对象就可以抽象为类&#xff0c;对象是类的一个实例。JavaScript在…...

【程序化天空盒】过程记录01:日月 天空渐变 大气散射

1 日月 SunAndMoon 昼夜的话肯定少不了太阳和月亮&#xff0c;太阳和月亮实现的道理是一样的&#xff0c;只不过是月亮比太阳多了一个需要控制月牙程度&#xff08;or添加贴图&#xff09;的细节~ 1.1 Sun 太阳的话很简单&#xff0c;直接在shader里实现一个太阳跟随平行光旋…...

无线通信中的轨道角动量

目录 一. 前言 二. 如何传输 三. 如何产生 3.1 螺旋结构器件 &#xff08;1&#xff09;螺旋相位板 &#xff08;2&#xff09;螺旋抛物面天线 3.2 超表面 3.3 天线阵列 3.3.1 相控阵 3.3.2 时控阵 四. 如何识别 一. 前言 轨道角动量&#xff1a;Orbital Angular M…...

以后更新功能,再也不用App发版了!智能小程序将为开发者最大化减负

在 IoT 时代&#xff0c;越来越多的企业意识到打造自有 App 对于品牌的重要性。作为智能设备不可或缺的控制终端&#xff0c;App 具备连接用户、完善服务、精细化运营用户的独特优势&#xff0c;可帮助企业大大提升品牌竞争力。 为了帮助品牌企业打造更具个性化、差异化的智能…...

C++之类模板全特化和偏特化

类模板类模板是通用类的描述&#xff0c;使用任意类型&#xff08;泛型&#xff09;来描述类的定义。使用类模板的时候&#xff0c;指定具体的数据类型&#xff0c;让编译器生成该类型的类定义。注意&#xff1a;函数模板中可以不指定具体数据类型&#xff0c;让编译器自动推到…...

Python 手写数字识别 MNIST数据集下载失败

目录 一、MNIST数据集下载失败 1 失败的解决办法&#xff08;经验教训&#xff09;&#xff1a; 2 亲测有效的解决方法&#xff1a; 一、MNIST数据集下载失败 场景复现&#xff1a;想要pytorchMINIST数据集来实现手写数字识别&#xff0c;首先就是进行MNIST数据集的下载&am…...

华为机试题:HJ61 放苹果(python)

文章目录博主精品专栏导航知识点详解1、input()&#xff1a;获取控制台&#xff08;任意形式&#xff09;的输入。输出均为字符串类型。1.1、input() 与 list(input()) 的区别、及其相互转换方法2、print() &#xff1a;打印输出。3、整型int() &#xff1a;将指定进制&#xf…...

【论文速递】ICCV2021 - 基于超相关压缩实现实时高精度的小样本语义分割

【论文速递】ICCV2021 - 基于超相关压缩的小样本语义分割 【论文原文】&#xff1a;Hypercorrelation Squeeze for Few-Shot Segmentation 【作者信息】&#xff1a;Juhong Min Dahyun Kang Minsu Cho 获取地址&#xff1a;https://openaccess.thecvf.com/content/ICCV2021/…...

单例模式(Singleton Pattern)

目录 1.什么是单例模式&#xff1a; 2.单例模式存在的原因&#xff1a; 3.单例模式的优缺点&#xff1a; 4.创建方式&#xff1a; 1. 单线程单例模式立即创建&#xff08;饿汉式&#xff09;&#xff1a; 2. 单线程单例模式延迟创建&#xff08;懒汉式&#xff09;&#xf…...

docker file和compose

文章目录1.dockerfile&#xff08;单机脚本&#xff09;1.概念2.原理3.dockerfile核心四步4.命令2.docker compose1.概念2.注意事项3.常用字段4.常用命令1.dockerfile&#xff08;单机脚本&#xff09; 1.概念 通过脚本&#xff0c;生成一个镜像&#xff0c;并运行对应的容器…...

如何解决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镜像 (这个安装的版本可能过高&#xff0c;后面安装Vue可能出问题) npm install -g cnpm --registryhttps://registry…...

【Nacos】Nacos配置中心服务端源码分析

上文说了Nacos配置中心客户端的源码流程&#xff0c;这篇介绍下Nacos配置中心服务端的源码。 服务端的启动 先来看服务启动时干了啥&#xff1f; init()方法上面有PostConstruct&#xff0c;该方法会在ExternalDumpService实例化后执行。 com.alibaba.nacos.config.server.s…...

第十五章 栅格数据重分类、栅格计算器、插值分析

文章目录第十五章 栅格数据分析第一章 栅格数据重分类第一节 栅格数据重分类第二节 栅格重分类的使用第三节 重分类的使用中的空值使用第四节 重分类的案例&#xff1a;分类统计面积第五节 坡度矢量分级图生成第二章 栅格计算器第一节 栅格计算器介绍第二节 栅格计算器使用第三…...

CS5260测试版|CS5260demoboard|typec转VGA参考PCB原理图

CS5260测试版|CS5260demoboard|typec转VGA参考PCB原理图 CS5260是一款高度集成的TYPEC转VGA转换方案芯片。 CS5260输出端接口:外接高清VGA设备如:显示器投影机电视带高清的设备&#xff0c;广泛应用于 笔记本Macbook Air 12寸USB3.1输出端对外接高清VGA设备如:显示器投影机电视…...

winform开发心得

最近一直在从事winform的开发&#xff0c;每次都是需要从网上查找资料才能对应具体风格要求&#xff0c;现在总结一下。 ui方面可以使用CSkin对应的一套ui&#xff0c;使用步骤 1.在窗口界面&#xff0c;工具箱空白处点击右键&#xff0c;弹出菜单有个”选择项“&#xff0c;点…...

学习周报-2023-0210

文章目录一 在SUSE11sp3系统中将openssh从6升级到8一 需求二 系统环境三 部署流程1.上传编译安装的软件包2.安装 gcc编译软件3.安装依赖zlib4.安装依赖openssl5.安装openssh二 在CentOS-6.9配置apache服务&#xff08;3&#xff09;---虚拟主机配置一 定义二 系统环境三 基于域…...

java自动带注释

...

硬盘监控与健康管理:DiskInfo全方位使用指南

硬盘监控与健康管理&#xff1a;DiskInfo全方位使用指南 【免费下载链接】DiskInfo DiskInfo based on CrystalDiskInfo 项目地址: https://gitcode.com/gh_mirrors/di/DiskInfo 在数字化时代&#xff0c;硬盘故障可能导致珍贵数据永久丢失。DiskInfo作为一款基于Crysta…...

FreeRTOS实战指南:从消息队列到内存管理,手把手解决嵌入式多任务难题

FreeRTOS实战指南&#xff1a;从消息队列到内存管理&#xff0c;手把手解决嵌入式多任务难题 1. 为什么嵌入式开发者需要FreeRTOS 在资源受限的嵌入式系统中&#xff0c;开发者常常面临这样的困境&#xff1a;既要处理实时性要求高的传感器数据采集&#xff0c;又要兼顾用户界面…...

Qt5新手必看:3分钟搞定你的第一个控制台程序(附完整代码)

Qt5入门实战&#xff1a;从零构建控制台应用的完整指南 引言&#xff1a;为什么选择Qt5作为开发起点&#xff1f; 对于刚接触C图形界面开发的程序员来说&#xff0c;Qt框架提供了一个绝佳的起点。它不仅拥有跨平台特性&#xff0c;还具备完善的工具链和丰富的模块库。控制台程序…...

大模型应用指南:小白程序员必收藏,轻松入门AI前沿技术!

2025年大模型技术已在IT、金融、制造等领域广泛应用&#xff0c;从智能客服到数据分析&#xff0c;助力企业转型。沙丘智库《大模型应用跟踪月报》收录504个案例&#xff0c;揭示行业分布、应用场景及发展趋势。大模型不仅是技术突破&#xff0c;更是时代标志&#xff0c;小白程…...

Python tkinter文件对话框实战:5分钟搞定文件选择与保存功能(附完整代码)

Python tkinter文件对话框实战&#xff1a;5分钟搞定文件选择与保存功能&#xff08;附完整代码&#xff09; 在开发桌面应用程序时&#xff0c;文件选择功能几乎是必不可少的。无论是需要用户上传文件、保存处理结果&#xff0c;还是选择工作目录&#xff0c;一个直观的文件对…...

微信单向好友检测终极指南:如何一键找出并清理删除你的微信好友

微信单向好友检测终极指南&#xff1a;如何一键找出并清理删除你的微信好友 【免费下载链接】WechatRealFriends 微信好友关系一键检测&#xff0c;基于微信ipad协议&#xff0c;看看有没有朋友偷偷删掉或者拉黑你 项目地址: https://gitcode.com/gh_mirrors/we/WechatRealFr…...

实测2公里矿用电缆跑网络:用电力载波模块替代光纤,在井下到底靠不靠谱?

井下网络传输技术突围&#xff1a;电力载波在恶劣环境中的实战评估 矿场深处&#xff0c;昏暗潮湿的巷道里&#xff0c;一组工程师正为数据传输问题焦头烂额。传统光纤在煤尘弥漫的环境中频频失效&#xff0c;而工期又迫在眉睫。这时&#xff0c;有人提出了一个大胆的方案——利…...

告别手动更新!GAMIT/GLOBK数据处理中tables表文件的自动化管理与避坑指南

告别手动更新&#xff01;GAMIT/GLOBK数据处理中tables表文件的自动化管理与避坑指南 在GNSS数据处理领域&#xff0c;GAMIT/GLOBK作为科研和工程项目的核心工具链&#xff0c;其精度和可靠性高度依赖于各类表文件的及时更新。然而&#xff0c;许多中高级用户在实际操作中常陷…...

# 发散创新:用Python打造自动化渗透测试工具链,从扫描到利用的全流程实战在网络安全攻防对抗中,**自动化渗透测试工

发散创新&#xff1a;用Python打造自动化渗透测试工具链&#xff0c;从扫描到利用的全流程实战 在网络安全攻防对抗中&#xff0c;自动化渗透测试工具正逐步成为红队成员和安全研究人员的核心利器。传统工具如Nmap、Burp Suite虽强大&#xff0c;但缺乏灵活定制能力&#xff1b…...