Я успешно использовал несколько пользовательских команд, использующих 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, т.е. в шаблонах данных?