【问题标题】:RoutedCommands in SilverlightSilverlight 中的路由命令
【发布时间】:2010-03-07 19:51:26
【问题描述】:

是否可以在 Silverlight 4 beta 版本中使用 RoutedCommand,如 ApplicationCommand.Copy、ApplicationCommand.Paste 等?

【问题讨论】:

    标签: silverlight-4.0 routed-commands


    【解决方案1】:

    不,Silverlight 不支持 RoutedCommands,尽管原始 ICommand 支持。 Silverlight 3 有 ICommand,但从未在任何地方使用过。 Silverlight 4 添加了对按钮控件的支持以关联 ICommand。

    但是,不支持功能齐全的路由命令。无论如何,它们在 WPF 中并不是特别有用,因为它们将处理命令逻辑的负担放在了处理它们的 UI 控件上。事实证明,从 ViewModel 中公开 ICommand 会更有用。

    查看http://www.codeplex.com/compositewpf 了解 Prism 项目,其中包括一些非常有用的类,例如 DelegateCommand。

    话虽如此,像剪切/复制/粘贴这样的命令与大多数命令不同,因为它们是一个通用命令,通常直接应用于执行它的控件。这与保存命令有很大不同,例如,它对 UI 后面的应用程序具有非常特定的含义。对于这些剪贴板相关的命令,我想说打破传统的分离模式并在后面的代码中编写一些特定于 UI 的代码并使用 FocusManager.GetFocusedElement() 来确定您需要操作哪个控件是很好的。

    【讨论】:

    • 只是为了补充 Josh 所说的:您可以使用 Prism 的命令实现,而无需使用所有 Prism(仅用于命令,根本不需要 Prism 的复合应用程序框架)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    • 1970-01-01
    • 2013-04-09
    • 1970-01-01
    • 2015-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多