В моем XAML у меня есть это:
<UserControl.CommandBindings>
<CommandBinding Command="Help"
CanExecute="HelpCanExecute"
Executed="HelpExecuted" />
</UserControl.CommandBindings>
<MenuItem Header="Help" Command="Help" />
Это прекрасно работает. Поэтому, когда я нажимаю контекстное меню, вызывается HelpExecuted().
Теперь я хочу сделать то же самое, кроме использования пользовательской команды вместо команды справки. Итак, что я делаю:
public RoutedCommand MyCustomCommand = new RoutedCommand();
и измените мой XAML на:
<UserControl.CommandBindings>
<CommandBinding Command="MyCustomCommand"
CanExecute="HelpCanExecute"
Executed="HelpExecuted" />
</UserControl.CommandBindings>
<MenuItem Header="Help" Command="MyCustomCommand" />
Но я получаю ошибку: невозможно преобразовать строку "MyCustomCommand" в атрибут "Command" к объекту типа "System.Windows.Input.ICommand". CommandConverter не может конвертировать из System.String.
Что мне здесь не хватает? И обратите внимание, что я хочу сделать все это в XAML, т.е. Не хочу использовать CommandBindings.Add(новый CommandBinding (MyCustomCommand....