3

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

4

1 回答 1

4

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

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

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

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

于 2010-03-07T20:00:15.987 回答