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。

时间: 2024-09-12 08:16:45

WPF Commanding Overview 的笔记的相关文章

WPF and Silverlight学习笔记(二十五)

WPF and Silverlight学习笔记(二十五):使用CollectionView实现对绑定数据的排序.筛选.分组 在第二十三节,我们使用CollectionView实现了对于绑定数据的导航,除导 航功能外,还可以通过CollectionView对数据进行类似于DataView的排序.筛选 等功能. 一.数据的排序: 使用第二十四节的数据源,查询所有 的产品信息: 1: <Window x:Class="WPF_24.CollectionViewSortData" 2:

WPF and Silverlight学习笔记(十二)

WPF and Silverlight学习笔记(十二):WPF Panel内容模型.Decorator内容模型及其他 一.Panel内容模型 Panel内容模型指从 System.Windows.Controls.Panel继承的控件,这些控件都是容器,可以在内部 承载其他的控件和子容器.Panel内容模型包含的容器有: Canvas DockPanel Grid TabPanel ToolBarO verflowPanel UniformGrid StackPanel ToolBarPanel

WPF and Silverlight学习笔记(七)

WPF and Silverlight学习笔记(七):WPF布局管理之StackPanel.WrapPanel.DockPanel 一.StackPanel StackPanel是以堆叠的方式显示其中的控件 1 .可以使用Orientation属性更改堆叠的顺序 Orientation="Vertical" 默认,由上到下显示各控件 .控件在未定义的前提下,宽度为StackPanel的宽度,高度自动适应控件中内容 的高度 1: <StackPanel Orientation=&q

WPF and Silverlight学习笔记(十六):WPF资源(Resource)(1)

一.什么是资源 通常使用 WPF 资源作为重用通常定义的对象和值的 简单方法.例如定义一种可以复用的单色的Brush对象,按钮的背景及矩形的填 充颜色均使用此Brush: 1: <Window x:Class="WPFResource.WinBasicResource" 2: xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation& quot; 3: xmlns:x="http:

WPF and Silverlight学习笔记(二十):WPF数据绑定概述

WPF数据绑定为应用程序提供了一种表示数据和与数据交互的简单而又一致的 方法.元素能够以公共语言运行库 (CLR) 对象和 XML 的形式绑定到各种数据源 中的数据. 一.数据绑定的基本概念: 数据绑定涉及到两个方面 :一个是绑定源,再一个是绑定目标.绑定源即控件绑定所使用的源数据,绑定 目标即数据显示的控件. 1.对于绑定源,在WPF可以是以下四种: CLR对象:可以绑定到CLR类的公开的属性.子属性.索引器上 ADO.Net对象:例如DataTable.DataView等 XML文件:使用X

WPF and Silverlight学习笔记(二十九):Brush(1)

在WPF和Silverlight中,Brush是应用很多的一种类型,主要用于填充各种图 形及控件.Brush及其子类位于System.Windows.Media命名空间,其继承关系如 下图所示: 一.SolidColorBrush SolidColorBrush是最简单的一种Brush,包含 一个Color属性,表示单色的画刷,例如使用红色填充一个矩形: 1: <Rectangle Margin="5" Height="50"> 2: <Recta

WPF and Silverlight学习笔记(二十八):基本图形的使用(3)图形的操作

接上一篇文章,在WPF中对图形进行操作,上一篇文章中使用了ImageSource (BitmapSource)中的两种: 1.使用BitmapImage加载图片2.使用 RenderTargetBitmap创建图片3.使用RenderTargetBitmap修改图片 本 文继续 4.使用WriteableBitmap修改图片 在使用 RenderTargetBitmap修改图片中,原图片不变,只相当于在原图片的基础上添加 一节新的内容,而如果对图片进行大的更改RenderTargetBitmap

WPF and Silverlight学习笔记(二十六):基本图形使用(1)

在WPF中,极大地丰富了关于图形.图像等多媒体元素的操作功能,本节主要 讨论基本的图形. 一.基本的图形类型 对于WPF中的基本图形类 主要位于System.Windows.Shapes命名空间,其类包括: 需要说明的是,在System.Windows.Media命名空间也存在着类似的类 型: 对应在类名上,添加"Geometry",这种类称为"几何类 ",对于几何类只用来描述图形,而不使用任何的画笔(Pen)和刷子 (Brush),即本身没有任何的颜色,并不支持交

WPF and Silverlight学习笔记(二十四):数据源提供器(DataProvider)

在WPF中系统提供了两个数据源提供器(DataProvider):对象数据源提供器 (ObjectDataProvider)和XML数据源提供器(XmlDataProvider).其作用类似 于ASP.Net数据源(DataSource)中的对象数据源(ObjectDataSource)和Xml数 据源(XmlDataSource).其继承结构如下: ObjectDataProvider用于处理由方法返回值所产生的数据源,其应用 非常广泛,通常多层应用程序通常在界面上使用ObjectDataPr