学习笔记三中,菜单具有能够自动提取命令文本的动能,我们猜想其他ICommandSource类是否具有类似的功能,如Button控件
目前可以采用两种技术重用命令文本;
一、直接从静态的命令对象中提取文本。XMAL可以使用Static标记扩展;
<Button Command="Close" Content="{x:Static ApplicationCommands.Close}"/〉//显示Text为Colse
该方法的问题在于,它只是调用命令对象的ToString()方法,得到的事命令的名称,而不是命令的文本。对于那些名称包含多个单词的命令,使用文本更好一些,如果一个按钮将
同一个命令使用了两次,从而可能会无意间从错误的命令获取文本;所以有了第二种方式;
二、使用数据绑定表达式
<Button Command="Close" Content="{Binding RelativeSource={RelativeSource Self},Path=Command.Text"/〉//显示Text为Colse
因为它绑定到当前元素,获取正在使用的Command对象,并且提取其Text属性
命令的其他功能
一、直接调用命令
并非只能使用实现了ICommandSource接口的类来触发希望执行的命令。也可以使用Execute()方法直接调用来自任何事件处理程序的方法。这时需要传递一个参数值(或
null引用)和对目标元素引用:
有待学习的内容
二、自定义控件的命令支持
有待学习的内容
三、禁用命令
有待学习的内容
四、命令的局限性
有待学习的内容