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。

目录
相关文章
|
C# .NET 开发框架
WPF笔记 ( xmlns引用,Resource、Binding 前/后台加载,重新绑定) 2013.6.7更新
原文:WPF笔记 ( xmlns引用,Resource、Binding 前/后台加载,重新绑定) 2013.6.7更新 1、xmlns Mapping URI的格式是 clr-namespace:[;assembly=] (1)如果自定义类和XAML处在同一个Assembly之中,只还需要提供clr-namespace值。
1449 0
|
C# 容器
WPF笔记(1.2 Navigation导航)——Hello,WPF!
原文:WPF笔记(1.2 Navigation导航)——Hello,WPF!这一节是讲导航的。看了一遍,发现多不能实现,因为版本更新了,所以很多旧的语法不支持了,比如说,不再有NavigationApplication,仍然是Application,TextBlock容器的TextWrap属性改为TextingWrap,StartupUri指向"Page1.xaml"。
832 0
|
C# C++ Windows
WPF笔记(1.1 WPF基础)——Hello,WPF!
原文:WPF笔记(1.1 WPF基础)——Hello,WPF! Example 1-1. Minimal C# WPF application// MyApp.csusing System;using System.
1003 0
|
C# 容器
WPF笔记(1.3 属性元素)——Hello,WPF!
原文:WPF笔记(1.3 属性元素)——Hello,WPF! 这一节中“属性元素”的概念可以用匪夷所思形容。1。WPF用标签元素实现对象建模,有两种:Control和Container,都用来装载内容和行为,前者如Button,后者如Window。
686 0
|
C# 前端开发
WPF笔记(1.4 布局)——Hello,WPF!
原文:WPF笔记(1.4 布局)——Hello,WPF! 这一节只是第2章的引子。布局要使用Panel控件,有四种Panel,如下:DockPanel,就是设置停靠位置布局模型。StackPanel,提供一个从左至右或从上至下放置内容的堆栈模型。
891 0
|
C#
WPF笔记(1.6 数据绑定)——Hello,WPF!
原文:WPF笔记(1.6 数据绑定)——Hello,WPF! 这个一节都是在讲一个数据绑定的示例。功用:输入姓和名,点击Add按钮,ListBox增加一条记录,永远是字符串“name: nick”;ListBox原先有3条不同记录,选中ListBox一条记录,两个输入框姓和名相应变化。
1106 0
|
C#
WPF笔记(1.8 资源与映射)——Hello,WPF!
原文:WPF笔记(1.8 资源与映射)——Hello,WPF! 终于,看明白了,已经是凌晨1:39分。这本书这一节写得实在是不好,一个local搞得我糊里糊涂,于是,准备按照他的思路,按照我的理解,改写一遍,包括源代码。
925 0
|
C#
WPF笔记(1.9 样式和控件模板)——Hello,WPF!
原文:WPF笔记(1.9 样式和控件模板)——Hello,WPF! 资源的另一个用途是样式设置:                                           Name:             Nick:                  代码很容易懂,记住用Setter定义每一个样式,注意指定了x:Key,然后哪个控件需要应用样式,就在控件里面指定Style;如果不指定x:Key,则所有控件都使用这个样式(当然也不会给控件设置Style="{StaticResource myStyle}")。
718 0