WPF

来源:互联网 发布:淘宝美工接单平台 编辑:程序博客网 时间:2024/04/27 13:42
Command 是WPF的命令系统。
Command通常用于定义一些通用性较高的执行命令,且具有强制性和代码的一致性。其设计目的是为了提高程序的可复用性、代码实现一致性,展现与逻辑分离。

Command应用场景
save命令,当收到save命令时,不管是什么组件,都统一执行其save()方法。这样我们可以在组件的基类或接口上进行save()方法的约束所有组件的实现,以达到统一编码风格的作用。

WPF命令系统包含4个元素
1、命令 Command : WPF的命令,其实就是实现了ICommand接口的类。
2、命令源 :发送命令的者,是实现了ICommandSource接口的类。很多界面元素都实现了该接口。
3、命令目标 :命令接收者或者叫执行命令者,是实现了IInputElement接口的类。
4、命令关联 :将命令执行逻辑关联到命令上,比如在执行命令之前对命令是否可以执行进行判断,命令执行后要做的后续事情。(起到监听器的作用)

如何使用命令
1、创建命令类 : 即创建1个实现了ICommand接口的类,如果与业务逻辑无关,则常用RoutedCommand;与业务逻辑相关的,则需要自定义命令类。
2、声明命令实例:使用命令前需要创建命令类的实例。
3、指定命令源:指定由谁来发送这个命令。同一个命令可以有多个源。一旦指定了命令源,则命令源就会受到命令的影响,当命令不可执行时,命令源不可用。
4、指定命令目标:告诉命令源向谁发送命令。如果没有指定命令目标,WPF默认以当前获得焦点的组件为命令目标。
5、设置命令关联:设置命令的执行逻辑。

命令执行的过程
1、一旦某个UI组件被命令源“瞄上”,命令源就会不断向命令目标进行探测,而命令目标会不断地发送可路由的PreviewCanExecute和CanExecute附加事件。
2、命令关联捕捉到PreviewCanExecute和CanExecute附加事件后,会判断是否可以发送命令,并将结果报告给命令。
3、命令源发出命令。
4、命令到达命令目标后,命令目标会发送PreviewExecuted和Executed附加事件。
5、命令关联捕捉到PreviewExecuted和Executed附加事件后,做后续的善后工作。
0 0