自定义WPF命令模式示例
Custom WPF command pattern example我已经完成了一些WPF编程,而我从未获得的一件事就是命令模式。 每个示例似乎都是针对内置示例,编辑,剪切,粘贴。 是否有人对自定义命令有最佳实践的示例或建议? 啊哈!我可以回答的问题!首先,我应该提到,我个人发现用代码而不是XAML定义和连接命令更加容易。与所有XAML方法相比,它使我可以更加灵活地连接命令的处理程序。 您应该计算出想要拥有的命令以及与之相关的命令。在我的应用程序中,我目前有一个用于定义重要应用程序命令的类,如下所示:
现在,由于我想将所有代码保持在一起,因此对Commands使用仅代码方法使我可以将以下方法放在上面的类中:
那里的第二种方法甚至可以与其他Command共享,而无需我在各处重复进行。 一旦定义了这样的命令,就可以将它们添加到任何用户界面中。在下文中,一旦窗口已加载,我将命令绑定添加到Window和MenuItem,然后使用循环将输入绑定添加到Window,以对所有命令绑定执行此操作。传递的参数是Window本身,因此上面的代码知道要尝试关闭的Window。
然后,我稍后还会为WindowClosing和WindowClosed事件提供事件处理程序,我建议您使命令的实际实现尽可能地小而通用。在这种情况下,我没有尝试放置试图在没有保存的数据的情况下关闭窗口的代码,而是将该代码牢牢地保留在WindowClosing事件内。 如果您有任何后续问题,请告诉我。 :) 去年,我在http://blogs.vertigo.com/personal/alanl/Blog/archive/2007/05/31/commands-in-wpf.aspx上发布了有关WPF命令的大量资源以及示例。 粘贴到这里: 亚当·内森(Adam Nathan)关于WPF中重要新概念的示例章节:命令 MSDN文章:WPF中的命令模式 Keyvan Nayyeri:如何将命令添加到自定义WPF控件 伊恩·格里菲思(Ian Griffiths):Avalon输入,命令和处理程序 维基百科:命令模式 MSDN库:命令概述 MSDN库:CommandBinding类 MSDN库:输入和命令方法主题 MSDN库:EditingCommands类 MSDN库:MediaCommands类 MSDN库:ApplicationCommands类 MSDN库:NavigationCommands类 MSDN库:ComponentCommands类 WPF SDK示例中也包含该示例,我扩展了RichTextBox编辑中的一个很好的示例。您可以在这里找到它:RichTextEditor.zip 在2008年9月的MSDN杂志中,Brian Noyes撰写了一篇有关RoutedCommand / RoutedEvents的精彩文章!
链接在这里: 关于XAML的事情是,它适用于"简单"程序,但是令人遗憾的是,当您要执行诸如共享功能之类的事情时,它不能很好地工作。假设您有多个类,并且UI的所有类都从未被禁用过,则必须为每个Window或UserControl编写一个" CanAlwaysExecute"方法!那不是很干。 在阅读了几篇博客并尝试了几件事之后,我选择了纯粹使XAML有关外观,样式,动画和触发器的选择。我所有与事件处理程序和命令的联系现在都在后面的代码中。 :) 顺便提一下,另一个陷阱是输入绑定,为了使其能够被捕获,焦点必须集中在包含输入绑定的对象上。例如,要获得快捷方式,您可以随时使用它(例如,F1打开帮助),则必须在Window对象上设置输入绑定,因为在您的应用程序处于活动状态时,该输入绑定始终具有焦点。即使您开始使用可能要向其父窗口添加输入绑定的UserControl,使用代码方法也应该使此操作更容易。 |
相关内容
-
cad逐点标注快捷键|cad的逐点标注命令
cad逐点标注快捷键|cad的逐点标注命令,,cad的逐点标注命令工具...
-
cad快捷键命令|cad快捷键命令大全标注
cad快捷键命令|cad快捷键命令大全标注,,cad快捷键命令大全标注...
-
矩形cad快捷键|CAD矩形命令快捷键
矩形cad快捷键|CAD矩形命令快捷键,,CAD矩形命令快捷键CAD软件...
-
cad重复复制快捷键|cad连续复制快捷键命令
cad重复复制快捷键|cad连续复制快捷键命令,,1. cad连续复制快...
-
cmd命令快捷键|cmd快捷键大全
cmd命令快捷键|cmd快捷键大全,,cmd快捷键大全首先介绍第一种方...
-
电脑系统图标自动排序|电脑图标自定义排序怎么
电脑系统图标自动排序|电脑图标自定义排序怎么弄,,1. 电脑图标...
-
cad布局常用快捷键|cad布局常用快捷键命令
cad布局常用快捷键|cad布局常用快捷键命令,,1. cad布局常用快...
-
cad平面设备快捷键|cad机械设计常用快捷键命令
cad平面设备快捷键|cad机械设计常用快捷键命令,,1. cad机械设...
-
电脑计算器命令|电脑计算器命令怎么用
电脑计算器命令|电脑计算器命令怎么用,,1. 电脑计算器命令怎么...
-
cad修改快捷键的命令|cad修改快捷键的命令大全
cad修改快捷键的命令|cad修改快捷键的命令大全,,cad修改快捷键...
-
电脑系统的启动服务项|启动系统服务命令
电脑系统的启动服务项|启动系统服务命令,,启动系统服务命令这...
-
在Inspiron3000笔记本适合计算机编程和英雄联盟
在Inspiron3000笔记本适合计算机编程和英雄联盟游戏,,问题: 最...
-
cad等分命令快捷键|cad快速等分快捷键
cad等分命令快捷键|cad快速等分快捷键,,1. cad快速等分快捷键1...
-
cad旋转命令快捷键|cad图形旋转快捷键命令
cad旋转命令快捷键|cad图形旋转快捷键命令,,cad图形旋转快捷键...
-
cmd命令电脑重启电脑|cmd重启命令
cmd命令电脑重启电脑|cmd重启命令,,1. cmd重启命令使用win+r打...