Назначить SHIFT удалить набор клавиш элементу панели DevExpress WPF

#wpf #xaml #keyboard-shortcuts #devexpress

#wpf #xaml #сочетания клавиш #devexpress

Вопрос:

Не удается назначить SHIFT Удалить набор клавиш элементу панели DevExpress в WPF. Есть ли какие-либо ограничения на это или я делаю это неправильно?
<dxb:BarButtonItem
x:Name="btnDelete"
Command="{Binding BtnDelete_Command}"
CommandParameter="{Binding ElementName=view}"
KeyGesture="SHIFT Delete"
Content="Delete" />

Ответ №1:

Вот код, который я попробовал:

     <dxb:BarManager>
        <dxb:BarManager.Items>
            <dxb:BarButtonItem x:Name="btnDelete" Command="{Binding BtnDelete_Command}" CommandParameter="{Binding ElementName=view}" KeyGesture="SHIFT Delete" Content="Delete" />
        </dxb:BarManager.Items>
        <dxb:BarManager.Bars>
            <dxb:Bar>
                <dxb:Bar.ItemLinks>
                    <dxb:BarButtonItemLink BarItemName="btnDelete"/>
                </dxb:Bar.ItemLinks>
            </dxb:Bar>
        </dxb:BarManager.Bars>
        <StackPanel>
            <Button Content="sdgsdg" />
            <TextBox x:Name="view"/>
        </StackPanel>
    </dxb:BarManager>



public partial class MainWindow : Window {
    public ICommand BtnDelete_Command { get; set; }
    public MainWindow() {
        BtnDelete_Command = new MyCommand();
        DataContext = this;
        InitializeComponent();
    }
}

public class MyCommand : ICommand {
    public bool CanExecute(object parameter) {
        return true;
    }

    public event EventHandler CanExecuteChanged {
        add { CommandManager.RequerySuggested  = value; }
        remove { CommandManager.RequerySuggested -= value; }
    }

    public void Execute(object parameter) {
        MessageBox.Show(parameter.GetType().ToString());
    }
}
  

Здесь все работает правильно. Если редактор не сфокусирован, команда выполняется. Если редактор сфокусирован, он сам обработал эту комбинацию клавиш и, следовательно, команда не выполняется.

Комментарии:

1. Спасибо за ответ.. Это кажется правильным. И как я могу заставить этот жест работать, когда текстовое поле сфокусировано? (извините, я новичок в wpf)