Как вызвать команду Command=“Copy” из ContextMenu Click?

376
23 января 2017, 17:23

Команда копировать тест Copy (в Button) связана через Command с ApplicationCommands.Copy

Как вызвать команду Command="Copy" из ContextMenu Click?

Click Пытается найти команду в Window1 а не в ApplicationCommands.Copy.

Серьезность Код Описание Проект Файл Строка Состояние подавления Ошибка CS1061 'Window1" не содержит определения для "Copy" и не удалось найти метод расширения "Copy", принимающий тип "Window1" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку). \Window1.xaml 1365 Активно

<Button Command="Copy">
    <Button.ToolTip>
        <ToolTip >
            <StackPanel>
                <TextBlock />                    
            </StackPanel>
        </ToolTip>
    </Button.ToolTip>
</Button>
CommandBindings.Add(new CommandBinding(ApplicationCommands.Copy, OnCopy, CanCutOrCopy));
TextAreaDefaultInputHandler.WorkaroundWPFMemoryLeak(InputBindings);
<ContextMenu>
    <MenuItem Click="Copy">
    </MenuItem>
</ContextMenu>
Answer 1

Решено заменой Click на Command

<MenuItem  Command="Copy"   >
Answer 2

Как решить, вы уже написали, а я допишу, почему такое происходит.

Превращение текста "Copy" в ApplicationCommands.Copy производится при помощи type converter'а. Type converter в команду действительно ищет среди ApplicationCommands.*. Но тип Click — не команда, а событие, поэтому правила для команд здесь не действуют.

READ ALSO
Как получить время простоя программы?

Как получить время простоя программы?

А именно время простоя в котором не было переключения на окно программы

354
ASP.NET настройка Ninject

ASP.NET настройка Ninject

Проблема с настройкой DI контейнера NinjectИмеется автоматически сгенерированный класс NinjectWebCommon

404
Asp.Net Web Api2 + SignalR

Asp.Net Web Api2 + SignalR

Подскажите плиз

385
Клиент серверный диалог

Клиент серверный диалог

Вопрос по TcpClientНапример, один TcpClient отправляет какое то сообщение другому

325