WPF学习一:命令
来源:互联网 发布:网络教育和业余哪个好 编辑:程序博客网 时间:2024/05/21 14:52
一、传统事件与命令:
举例:一个应用程序有两种方式执行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、具有状态并且可处于不同模式的命令;
- WPF学习一:命令
- WPF学习笔记一
- WPF学习笔记(一)
- 深入浅出WPF学习(一)
- WPF学习笔记(一)
- WPF学习笔记《一》
- WPF中的命令与命令绑定(一)
- WPF中的命令与命令绑定(一)
- WPF 学习笔记(一)
- WPF and Silverlight 学习笔记(十五):WPF命令(Commands)
- WPF and Silverlight 学习笔记(十五):WPF命令(Commands)
- WPF学习之【事件,命令和设置】
- WPF学习系列029: 3.4 命令
- WPF学习之深入浅出话命令
- WPF学习之深入浅出话命令
- Wpf 学习系列2 命令模型
- WPF学习第九集-深入浅出话命令
- WPF学习(第九章)命令
- Android中进程的生命周期是什么?
- Android基础类之BaseAdapter
- 2011-2012 年终总结
- shopex本地安装环境-phpnow环境配置 超级简单!
- 系统框图
- WPF学习一:命令
- MFC下WM_NOTIFY消息处理流程
- 杂记
- 完成端口例程
- Using Renewable Energy in the Data Center
- JBPM4.4安装(Tomcat-MySQL)
- 更新ListView某一行
- 2012.10.07 安卓游戏开发笔记(十二)_SurfaceView视图
- Android SurfaceView 的基本应用