欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

WPF-命令-基础知识

程序员文章站 2023-11-14 17:42:52
命令模型的主要元素: 1、命令 2、命令绑定:命令连接到相关的应用程序逻辑 3、命令源:命令源触发命令, 4、命令目标:应用程序逻辑。 ICommand接口 命令模型的核心是System.Windows.Input.ICommand接口。 该接口包含两个方法和一个事件: void Execute(o ......

命令模型的主要元素:

1、命令

2、命令绑定:命令连接到相关的应用程序逻辑

3、命令源:命令源触发命令,

4、命令目标:应用程序逻辑。

----------------------------------------------------------------

icommand接口

命令模型的核心是system.windows.input.icommand接口。

WPF-命令-基础知识
public interface icommand
{  
    event eventhandler canexecutechanged; //当命令状态改变时,引发该事件。
    
    bool canexecute(object parameter); //此方法返回命令状态,如果命令可用则返回true,不可用则返回false。
    
    void execute(object parameter); //定义在调用此命令时要调用的方法。
}
WPF-命令-基础知识

该接口包含两个方法和一个事件:

void execute(object parameter);

bool canexecute(object parameter);

event eventhandler canexecutechanged;

execute()方法包含应用程序任务逻辑。

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

命令状态改变时,引发canexecutechanged事件。对于使用命令的任何控件,这是指示信号,表示它们应当调用canexecute()方法检查命令的状态。

--------------------------------------------------------------------------------------------------------

routedcommand类

创建自己的命令时,不会直接实现icommand接口;而是使用system.windows.input.routedcommand类,该类自动实现了icommand接口。routedcommand类是wpf中唯一实现了icommand接口的类。所有wpf命令都是routedcommand类及其派生类的实例。

routecommand类不包含任何应用程序逻辑,只代表命令,只含有命令本身的功能,所有routedcommand对象的功能相同。

routecommand类为事件冒泡和隧道添加了一些额外的基础结构。

routecommand类私有地实现了icommand接口,并添加了icommand接口方法的不同版本。

public void execute(object parameter, iinputelement target){}

public bool canexecute(object parameter, iinputelement target){}

routedcommand类还引入三个属性:命令名称(name属性)、包含命令的类(ownertype)以及触发命令的按键或鼠标操作。

--------------------------------------------------------------------------------------------------------------------------

routeduicommand类

routeduicommand类继承自routedcommand类(实际上wpf的所有预先构建的命令都是routeduicommand对象)。

routeduicommand类只增加了text属性,该属性是为了显示命令的文本。按钮的文本可以使用命令的text属性,相同命令显示相同的文本。

------------------------------------------------------------------------------------------------------------------

命令库

wpf通过5个静态类的静态属性提供:

1、applicationcommand:通用命令,剪切板命令(copy、cut、paste),文档命令(new、open、save、save as、print)等。

2、navigationcommand:导航命令,基于页面的应用程序设计的一些命令(browseback、browseforward和nextpage)等。

3、editingcommand:文档编辑命令,

4、componentcommands:该类提供了由用户界面组建使用的命令。

5、mediacommands:该类提供了一组用于处理多媒体的命令。