WPF 事件路由与控件使用详解
1. RoutedCommand 类介绍
WPF 命令架构的核心是RoutedCommand类。若要创建自定义命令,需创建该类的实例,对其进行配置,并将其绑定到要使用的控件上。
RoutedCommand类主要负责引发触发操作的事件,而非直接实现命令操作。它有两个主要方法:
-Execute 方法:当命令源触发命令时调用该方法。但它并不执行实现命令的代码,而是引发PreviewExecuted和Executed两个路由事件,这些事件会遍历元素树,触发实际执行命令的事件处理程序。
-CanExecute 方法:当命令源想确定是否应启用该命令时调用。同样,它不实现其代表的操作,而是引发PreviewCanExecute和CanExecute两个路由命令,用于遍历元素树,找到能确定是否启用命令的事件处理程序。
此外,RoutedCommand类还有两个重要成员:
-CanExecuteChanged:当可能影响命令可用性的情况发生变化时,会引发此路由事件,通知命令源调用CanExecute方法来确定是否应启用命令。
-InputGestures:这是一个属性,返回与命令关联的输入手势集