• WPF Commanding Overview 的笔记


    整个命令系统的流程如下:

    CommandManager 负责监听一些它关注的属性的更改(例如:Focus、Click),当界面上有此类事件发生时,它会通知所有的 RoutedCommand 发生 CanExecutedChanged 事件。

     

    这时,已经绑定了这些 RoutedComamnd 的 CommandSource (主要是各类控件),会调用 RoutedCommand 的 CanExecute 方法来检测是否可执行,并根据返回的结果来设置自己的状态。如,当返回可执行时,作为 CommandSource 的按钮则会设置自己的 IsEnabled 属性为 true。此时,如果用户“点击”了这个 CommandSource 时,它会调用它所绑定的 RoutedCommand 的 Execute 方法。

     

    CommandBinding 的主要设计目标是为了在一个较高的逻辑树节点(例如 Window 节点)处,重用固定的命令执行逻辑。也就是说,当我在 Window上使用 CommandBinding 绑定了某个 RoutedCommand 的执行逻辑后,所有 Window 中的逻辑子结点如果执行了此 RoutedCommand,则会按照路由顺序寻找此 RoutedCommand 所对应的 CommandBinding,找到后,则会执行其绑定的执行逻辑。

     

    这也就是 RoutedCommand 的命名由来,也说明了,CommandBinding 只能用于绑定 RoutedCommand。

     

    欢迎转载,转载请注明:

    转载自 胡庆访http://zgynhqf.cnblogs.com/ ]

  • 相关阅读:
    hashlib模块
    logging模块
    Python的富比较方法
    格式化符号说明
    __str__与__repr__区别
    2014-07-18 10:25

    2014-07-17 17:04
    2014-07-17 16:44
    2014-07-16 15:54
  • 原文地址:https://www.cnblogs.com/zgynhqf/p/1942863.html
Copyright © 2020-2023  润新知