第9章 命令(1)——概述

来源:互联网 发布:乐视刷windows xp 编辑:程序博客网 时间:2024/06/18 11:31

一、概述

命令是对应用程序中特定功能的概括总结。特定功能可以是新建、打开、关闭、保存、复制、黏贴、打印等等。命令一旦创建就可通过多种方式去触发执行,如菜单、上下文菜单、工具栏、快捷键等等。

二、命令模型

命令模型主要由以下4部分组成:

  • 命令:表示应用程序特定功能。它不包含执行任务的代码。
  • 命令源:触发命令的元素。
  • 命令目标:命令要应用的元素。
  • 命令绑定:将上面三部分关联在一起,使命令能够被执行。

ICommand接口

WPF命名模型的核心就是ICommand接口,该接口定义了命令的工作原理。主要包含两个方法和一个事件:

public interface ICommand{    event EventHandler CanExecuteChanged;    bool CanExecute(object parameter);    void Execute(object parameter);}
Execute()方法包含具体执行的方法逻辑代码。

CanExecute()方法返回命令的状态。如果命令可用,则返回true;如果不可用,就返回false。

CanExecuteChanged事件,当命令状态改变时引发该事件。对于使用命令的任何控件,这是指示信号,表示它们应当调用CanExecute()方法检查命令的状态。通过使用该事件,当命令可用时,命令源(如Button)可自动启用自身;当命令不可用时,禁用自身。

RoutedCommand类

RoutedCommand类是WPF中唯一实现了ICommand接口的的类。当自己创建命令时,一般不会直接实现ICommand接口,而是使用RoutedCommand类。

RoutedUICommand类

RoutedUICommand类继承自RoutedCommand类,它只是增加了Text属性,该属性是为命令显示的文本。如果不在用户界面的任何地方显示命令文本,那么RoutedUICommand类和RoutedCommand类是等效的。

三、命令库

为了减少创建这些命令所需的工作,WPF提供了基本命令库,主要是通过以下5个专门的静态类的静态属性提供:

  • ApplicationCommands:通用命令,如剪切板命令(Copy、Cut等),文档命令(如New、Open等)
  • NavigationCommands:导航命令
  • EditingCommands:文档编辑命令
  • ComponentCommands:用户界面组件命令,包括用于移动和选择内容的命令
  • MediaCommands:用于多媒体的命令(Play、Pause、NextTrack等)

0 0