Пожалуйста, извините, если это глупый вопрос - я прочитал дюжину статей об инфраструктуре команд WPF, и я запутался как никогда.
Я понимаю, что могу использовать встроенные команды для реализации (например) панели инструментов, которая будет применять стандартные функции вырезания / копирования / вставки к любому выделенному текстовому полю:
<ToolBar>
<Button Command="{x:Static ApplicationCommands.Cut}">Cut</Button>
<Button Command="{x:Static ApplicationCommands.Copy}">Copy</Button>
<Button Command="{x:Static ApplicationCommands.Paste}">Paste</Button>
</ToolBar>
Но я хочу расширить этот шаблон, чтобы можно было использовать одну панель инструментов для вызова аналогичных (но не идентичных) операций с рядом различных элементов управления. Например, я мог бы создать собственный элемент управления, производный от ListBox, который также поддерживает операции вырезания, копирования и вставки. Хотя выполнение операции копирования в ListBox будет кодироваться иначе, чем в TextBox, оно все равно будет вызываться из той же кнопки панели инструментов.
Итак, мои вопросы:
[1] Что необходимо реализовать в пользовательском элементе управления, чтобы его можно было командовать, как в приведенном выше примере? В частности, он должен быть обнаружен на панели инструментов при фокусировке.
[2] Какая разметка требуется на панели инструментов, чтобы одна кнопка могла вызывать разные команды, в зависимости от типа элемента управления, на который сфокусировано?
Большое спасибо за любой совет, который вы можете предложить.
Тим