就像属性系统在WPF中得到了升级、进化为依赖属性一样,事件系统在WPF也得到了升级-----进化成为了路由事件(Routed Event),并在其基础上衍生出命令传递机制。这些机制在很大程度上减少了对程序员的束缚,让程序的设计和实现更加的灵活,模块之间的耦合度也进一步降低,这一章我们一起来领略一下新消息机制的风采。
8.1 近观WPF的树形结构
路由一词的意思大概是这样:起点和终点间有若干个中转站。从起点出发后经过每个中转站时要做出选择,最终以最快的路径形式到达终点。编程的本质是借助编译器来扩展操作系统的功能。所以,程序的基本运行不可能脱离操作系统------Windows本身就是一种消息驱动的操作系统,所以我们的程序注定是消息驱动的。程序运行的时候也要把自己的消息系统和整个系统的消息系统“连通”才能够被执行或者相应。纵观几代WIndows平台程序开发,最早的WIndowAPI开发(C语言)和MFC开发我们可以直接看到各种消息并可以定义自己的消息;到了COM和VB时代,消息被分装为事件(EVENT)并一直沿用至.net开发平台---无论怎么说,程序间模块使用消息互相通讯的本质是没有变的。从Windows API到传统的.NET开发,消息的传递都是直接模式的---即消息直接由发送中交给接收者。WPF把这种直接消息模型升级为可传递的消息模型----前面我们已经知道,WPF的UI是由布局控件和控件构成的树形结构,