界面控件DotNetBar for WinForms使用教程:命令模型的使用

DotNetBar for Windowsforms中的命令可帮助您将操作(例如按钮)的发起者与执行该操作的逻辑分开。它们还可以帮助您将当前程序状态(例如“启用”,“文本”或“已检查”)传达给使用该命令的任何用户界面组件。这允许多个不同的源调用相同的命令逻辑,并且允许自定义命令逻辑并将其传达给不同的目标。

DotNetBar for Windowsforms中的命令可帮助您将操作(例如按钮)的发起者与执行该操作的逻辑分开。它们还可以帮助您将当前程序状态(例如“启用”,“文本”或“已检查”)传达给使用该命令的任何用户界面组件。这允许多个不同的源调用相同的命令逻辑,并且允许自定义命令逻辑并将其传达给不同的目标。

命令基于ICommand接口,尤其是实现ICommand接口的Command对象。命令示例包括文件操作(如保存,打开和打印)或编辑命令(如复制,剪切和粘贴)。

使用命令,您可以将执行操作的实际逻辑与调用命令的源分开。您可以有多个调用同一命令的源,并且可以通过该命令将应用程序状态传达回使用它的源。

使用Commands的最直接方法是从Visual Studio.NET Toolbox将Command组件添加到表单中,处理其Executed事件,然后通过在源代码(如ButtonItem)上设置Command属性,将其分配给所需的任何源代码。此方法的优点是您可以依靠Visual Studio.NET设计时功能来操纵命令。

另一种方法是将命令定义为静态类上的静态成员,并将其分配给用户界面元素。这种方法的优点是可以轻松地从应用程序的任何形式或部分访问命令。

命令概念

DotNetBar中的命令模型包含3个主要概念:

  • command (ICommand的,命令)是要被执行的动作
  • command source(ICommandSource)是调用该命令的对象
  • command manager(命令管理)是映射命令给命令源对象

指令

通过实现ICommand接口来创建命令。Command对象实现ICommand接口,您可以从其继承以添加所需的任何自定义功能。

与命令关联的操作放置在Executed事件处理程序的内部。您可以使用PreviewExecuted事件来决定是否允许触发Executed事件。Command提供了Execute方法,您可以调用该方法以编程方式引发Executed事件。

命令还提供了使用命令传播到所有命令源的属性。这包括“启用”,“文本”,“已检查”等属性。例如,当您设置Enabled属性时,该值将传播到支持该属性的所有命令源。不提供该属性的源将被忽略。这样,您可以在无法执行命令时简单地禁用附加的命令源。此属性传播适用于Command对象上公开的所有其他属性。

要设置在Command上未显式定义的任何属性,提供了SetValue方法,该方法允许您按名称设置属性。

命令源

命令源是实现ICommandSource接口的任何对象。DotNetBar中的BaseItem类和其他控件都实现ICommandSource接口,您可以在希望添加命令支持的任何其他对象上实现它。

ICommandSource公开了两个属性:

  • 命令是调用命令源时要执行的命令
  • CommandParameter是用户定义的数据,用于将信息传递给实现命令的处理程序。

在内部,实现ICommandSource的任何对象都将在分配给Command的Execute方法上调用Execute方法,以执行命令操作,以响应某些用户生成的事件或其他类型的事件。

请注意,某些支持ICommandSource的对象(如LabelItem或LabelX)从不执行命令,而是在命令本身上设置Text或Image属性时可以反映命令的状态。

命令管理器

CommandManager对象所代表的Command Manager是绑定Commands和Command Sources的粘合剂。命令源使用它来将源连接到命令(通过RegisterCommand和UnregisterCommand方法)。

通常,除非您在对象上实现ICommandSource,否则根本不需要与CommandManager进行交互。

RibbonPad示例提供了有关如何在应用程序中使用命令的演示。

标签:

来源:慧都网

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月24日
下一篇 2021年1月24日

相关推荐

发表回复

登录后才能评论