【WPF】命令 --《深入浅出WPF》

本文详细介绍了WPF中命令的使用,包括RoutedCommand的创建与应用,以及如何自定义Command。通过前端和后端代码示例,解释了命令的创建、声明、指定源和目标,以及命令执行的流程。同时,文章讨论了自定义Command时,如何定义接口、创建命令源和目标,并实现了逻辑集成。
摘要由CSDN通过智能技术生成

命令使用步骤:

创建命令类。创建一个实现ICommand接口的类,如果命令与具体业务逻辑无关,使用WPF类库中的RoutedCommand类即可。如果想得到与业务逻辑相关的专有命令,则需创建RoutedCommand或ICommand接口的派生类

声明命令实例。使用命令时需要创建命令类的实例。一般情况下,程序中的某种操作只需要一个命令实例与之对应即可,因此,程序中的命令多使用单件模式,以减少代码复杂度。

指定命令的源。同一个命令可以有多个源,一旦命令指派给命令源,那么命令源就会受命令的影响,当命令不能被执行的时候,作为命令源的控件将处于不可用的状态。

指定命令的目标。命令目标不是命令的属性,而是命令源的属性,被指定为命令源的组件,无论是否拥有焦点都会收到命令。如果没有指定目标,wpf默认当前拥有焦点的对象就是命令目标。

设置命令关联。无论命令目标是由程序员指定还是由WPF根据焦点所在判断出来的,一旦某个UI组件被命令源“瞄上”,命令源就会不断向命令目标投石问路,命令目标就会不停地发送可路由的PreviewCanExecute 和CanExecute附加事件,这两个事件会沿着UI元素树向上传递并被命令关联所捕捉,命令关联捕捉到这些事件后就会实时向命令报告是否能够发送。如果命令被发送出来,并到达命令目标,命令目标就会发送PreviewExecuted和Executed两个附加事件,这两个事件会沿着UI元素树传递并被命令关联捕捉,命令关联会完成一些后续的任务。

一、RoutedCommand

 

 前端代码:

     <StackPanel Name="clearStackPanel">
        <StackPanel Orientation="Horizontal">
            <Button Name="clearButton" Content="Send Clear Text Command" Margin="5" />
            <Button Name="addButton" Content="Send Add Text Command" Margin="5" />
        </StackPanel>
        <TextBox x:Name="beCleardeText" Height="80" Margin="5" Text="鸿雁长飞光不度,鱼龙潜跃水成文"/>
    </StackPanel>

后端 :

        privat
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值