Как связать ApplicationCommands для ViewModel?

Я успешно использовал несколько пользовательских команд с помощью MVVM-Light, но мне нужен Возможность реагировать на стандартные команды ApplicationCommands не только на уровне окна, но и на уровне подробных элементов.

У меня есть TreeView , в который я хочу иметь возможность копировать и вставлять узлы. Каждый TreeViewItem имеет свою собственную ViewModel, и они отображаются через HierarchicalDataTemplates в XAML, так как есть несколько разных типов. Я реализовал методы для копирования, вставки, а также CanCopy и CanPaste в своих классах ViewModel.Если возможно, я мог бы достаточно легко реализовать MVVM-Light RelayCommands, указывающие на них, но это не кажется правильным.

Я хотел бы получить доступ к командам с помощью меню, Ctrl + C и Ctrl + V или, возможно, контекстного меню. Я также не хочу нарушать функциональность копирования / вставки для других элементов в моем пользовательском интерфейсе, таких как TextBoxes. Представляется целесообразным использовать для этой цели встроенные ApplicationCommands. Однако я вижу только примеры того, как они обрабатываются в коде программной части UserControl. У меня нет (и не нужен) UserControl, и он не соответствует MVVM.

Есть ли способ привязать команды ApplicationCommand.Copy и ApplicationCommand.Paste к моим ViewModels, то есть в шаблонах данных?

12
задан mbmcavoy 3 October 2011 в 23:04
поделиться