WPF自定义命令和处发命令
发布日期:2021-06-24 06:58:44 浏览次数:5 分类:技术文章

本文共 1553 字,大约阅读时间需要 5 分钟。

接实现ICommand接口的命令。在介绍之前,先看一下ICommand接口的原型:

  • event EventHandler CanExecuteChanged;
  • bool CanExecute(object parameter);
  • void Execute(object parameter);

  其中第一个事件为,当命令可执行状态发生改变时,可以激化此事件来通知其他对象。另外两个方法在上面已经用过同名的,在此不做重复说明。下面开始实现一个自定义直接实现ICommand接口的命令,同样实现点击源控件,清除目标控件的内容:

1  //为了使目标控件,含有Clear()方法,所以在此一个定义接口 2     public interface IView 3     { 4         void Clear(); 5     } 6      7     //定义命令 8     public class ClearCommand : ICommand 9     {10         public event EventHandler CanExecuteChanged;11 12         public bool CanExecute(object parameter)13         {14             throw new System.NotImplementedException();15         }16 17         public void Execute(object parameter)18         {19             IView view = parameter as IView;20             if (view != null)21             {22                 view.Clear();23             }24         }25     }26 27     //自定义命令源28     public class MyCommandSource : System.Windows.Controls.UserControl, ICommandSource29     {30         public ICommand Command { get; set; }31 32         public object CommandParameter { get; set; }33 34         public IInputElement CommandTarget { get; set; }35 36         //重写点击处理函数,注意由于事件的优先级不同,如果命令源是button的话,下面的函数不起作用37         protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)38         {39             base.OnMouseLeftButtonDown(e);40 41             if (this.CommandTarget != null)42             {43                 this.Command.Execute(this.CommandTarget);44             }45         }46     }

 

转载于:https://www.cnblogs.com/qq247039968/p/4135238.html

转载地址:https://blog.csdn.net/weixin_30896763/article/details/98772672 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Windows环境下32位汇编语言程序设计(典藏版)
下一篇:ios消息推送机制及问题总结

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月14日 04时35分11秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

「管理数学基础」3.1 凸分析:凸集与凸集分离定理、Farkas引理 2019-04-28
「管理数学基础」3.2 凸分析:凸函数 2019-04-28
「管理数学基础」3.3 凸分析:凸函数的极值和凸规划 2019-04-28
「管理数学基础」4.1 模糊数学:模糊现象与模糊集、隶属函数、模糊集的运算、水平截集与分解定理 2019-04-28
「管理数学基础」4.3 模糊数学:模糊关系与模糊矩阵、模糊关系的运算与合成、模糊等价关系 2019-04-28
「CSDN年度征文」微软学生大使、VSC中文社区、KDD CUP...2020年,我与技术社区 2019-04-28
「大厂实习心得」久坐办公写程序的我,差点忘了『呼吸』也能锻炼身体 2019-04-28
【bug解决方案】powershell 中无法激活 conda 环境 /Anaconda 使用 powershell 无效 2019-04-28
dgl._ffi.base.DGLError: Cannot assign node feature “n_feat“ on device cuda:0 to a graph on device 2019-04-28
是时候给为的 C 盘清理污垢了!一个830KB的神器安全解决烦恼 | C 盘快满了,如何清理 C 盘? | win 10 OS盘清理 2019-04-28
VS Code 中的 Vim 操作 | 无需修改 VSC 默认快捷键 | 常用组合与逻辑 2019-04-28
随笔 | 写代码时极有可能面临的焦虑 2019-04-28
【应用统计学】第一类/α/弃真错误与第二类/β/取伪错误的解释与举例 2019-04-28
Models of Two Types of Data in QM Based on Control Chart and PCA 2019-04-28
【LaTeX】LaTeX安装&美赛模板(mcmthesis)使用笔记(含代码) 2019-04-28
【美赛】【LaTeX】【页眉】关于tex中mcmthesis包/模板的调整页眉宽度、段间距等问题 2019-04-28
JavaScript基础语法快速入门 2019-04-28
JavaScript对象快速入门 2019-04-28
JavaScript数组快速入门 2019-04-28
git学习笔记 2019-04-28