博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF学习笔记“命令”一:命令基础
阅读量:5082 次
发布时间:2019-06-13

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

一、传统事件与命令:

  举例:一个应用程序有两种方式执行PrintDocument()方法;1、通过按钮;2、通过快捷键(B);

  传统事件情况下,会为按钮事件和快捷键方式都创建两个事件(虽然使用的是同一个PrintDocument()方法),同时还要考虑快捷键是否会需要使用进行判断(原因是按钮的启用状态和快捷键启用状态并不是同步的);

  命令情况下,主要增加了两个特性:1、将事件委托到适当的命令;2、使控件的启用状态和相应命令的状态保持同步;

二、命令的4个重要元素

  1、命令;2、命令绑定;3、命令源;4、命令目标;

三、命令的核心是System.Window.Input.ICommand接口,该接口定义了命令的工作原理。

  public interface ICommand

  {

  void Execute(object parameter);//最终触发一个在应用程序其他地方处理的事件;

  bool CanExecute(object parameter);//返回命令的状态,可用返回true;不可用返回false;

  event EventHandler CanExecuteChanged;//当命令状态改变时,引发该事件

  //注意:命令可用,命令源可用;命令不可用,命令源也不可用;

  }

四、RoutedCommand类

  System.WIndows.Input.RoutedCommand类是WPF中唯一实现了ICommand接口的类;换句话说WPF命令都是该类的实例;

  WPF命令模型的一种重要概念是,RoutedCommand类不包含任何应用程序逻辑。它只是代表一个命令,这意味着各个RoutedCommand对象具有相同的功能;

  为了支持路由事件,该类实现了ICommand接口,并且添加了ICommand接口方法的一些不同的版本。最明显的变化是Execute()和CanExcute()使用了一个额外参数;

  public void Execute(object parameter, IInputElement target);

  public bool CanExecute(object parameter, IInputElement target);

  参数target是开始处理事件的元素,事件从target元素开始,然后冒泡至高层的容器,直到处理事件;

五、RoutedUICommand类

  RoutedUICommand类继承自RoutedCommand类,该类用于具有文本的命令,这些文本显示在用户界面中的某些地方,该类只增加了一个属性Text;优点是文本可以本地化;


六、命令为解决的问题:1、命令跟踪;2、“可撤销的命令”;3、具有状态并且可处于不同模式的命令;

转载于:https://www.cnblogs.com/gengyuanchao/archive/2012/10/07/2714198.html

你可能感兴趣的文章
PHP上传RAR压缩包并解压目录
查看>>
Codeforces 719B Anatoly and Cockroaches
查看>>
jenkins常用插件汇总
查看>>
c# 泛型+反射
查看>>
第九章 前后查找
查看>>
Python学习资料
查看>>
jQuery 自定义函数
查看>>
jquery datagrid 后台获取datatable处理成正确的json字符串
查看>>
ActiveMQ与spring整合
查看>>
web服务器
查看>>
网卡流量检测.py
查看>>
poj1981 Circle and Points 单位圆覆盖问题
查看>>
POP的Stroke动画
查看>>
SQL语句在查询分析器中可以执行,代码中不能执行
查看>>
yii 1.x 添加 rules 验证url数组
查看>>
html+css 布局篇
查看>>
SQL优化
查看>>
用C语言操纵Mysql
查看>>
轻松学MVC4.0–6 MVC的执行流程
查看>>
redis集群如何清理前缀相同的key
查看>>