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

本文共 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消息推送机制及问题总结

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年03月31日 00时24分22秒

关于作者

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

推荐文章