Witam Piszę aplikację w WPF-ie i potrzebuję ustawić kilka podstawowych skrótów klawiaturowych typu kopiuj , wklej , wytnij. Chciałem do teog użyc application commands. Więc napisałem sobie taki kod

CommandBindings.Add(new CommandBinding(ApplicationCommands.Copy,Copy_Executed,Copy_Enabled));
  CommandBindings.Add(new CommandBinding(ApplicationCommands.Cut,Cut_Executed,Cut_Enabled));
  CommandBindings.Add(new CommandBinding(ApplicationCommands.Paste,Paste_Executed,Paste_Enabled));

Funkcje, które są podpięte do application commands wyglądają następująco


private void Paste_Enabled(object sender,CanExecuteRoutedEventArgs e)
{
    e.CanExecute = selectionService != null && selectionService.CurrentSelection.Count > 0;

}

private void Paste_Executed(object sender, ExecutedRoutedEventArgs e)
{

        if (GetSelected() != null)
            Paste(true);
        else
           Paste(false);

}

private void Copy_Executed(object sender, ExecutedRoutedEventArgs e)
{
    Copy();
}

private void Copy_Enabled(object sender, CanExecuteRoutedEventArgs e)
{
    e.CanExecute = selectionService.CurrentSelection.OfType<DesignerItem>().Count() > 0;
}

#endregion
private void Cut_Executed(object sender, ExecutedRoutedEventArgs e)
{
    Copy();
    DeleteCurrentSelection(false);
}

private void Cut_Enabled(object sender, CanExecuteRoutedEventArgs e)
{
    e.CanExecute = this.SelectionService.CurrentSelection.Count() > 0;
}

Problem polega na tym, że za pomocą skrótów klawiaturowych udaje mi się wywołać jedynie wytnij. W pozostałych funkcjach nie łapie się break. Czy ktoś wie co może byc przyczyną takiego zachowania ? Ewentualnie możeci epolecić jakiś inny sposób na tworzenie skrótów klawiaturowych.

Aha Te command bindingi są wrzucone w klasę, a ta klasa jest podpięta do GUI (poprzez XAML-a - moja klasa dziedziczy po Canvas, dlatego też mogę sobie ją używac w designerze wpf-a)