Silverlight 4.0 Silverlight中的RoutedCommands

Silverlight 4.0 Silverlight中的RoutedCommands,silverlight-4.0,routed-commands,Silverlight 4.0,Routed Commands,是否可以在Silverlight 4 beta版中使用路由命令,如ApplicationCommand.Copy、ApplicationCommand.Paste等?否,Silverlight不支持路由命令,尽管基本ICommand是。Silverlight 3有ICommand,但从未在任何地方使用过。Silverlight 4添加了对按钮控件的支持,以使ICommand关联 但是,不支持功能齐全的路由命令。它们在WPF中并不是特别有用,因为它们将处理命令逻辑的负担放在了处理它们的UI控件上。

是否可以在Silverlight 4 beta版中使用路由命令,如ApplicationCommand.Copy、ApplicationCommand.Paste等?

否,Silverlight不支持路由命令,尽管基本ICommand是。Silverlight 3有ICommand,但从未在任何地方使用过。Silverlight 4添加了对按钮控件的支持,以使ICommand关联

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

查看Prism项目,该项目包含一些非常有用的类,如DelegateCommand


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

只是为了补充Josh所说的:您可以使用来自Prism的命令实现,而无需使用所有Prism(仅用于命令,根本不需要Prism的复合应用程序框架)。