В моем 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 (new CommandBinding (MyCustomCommand ....