问题描述
||
无法将SHIFT + Delete KeyGesture分配给WPF中的DevExpress条项目。是否对此有任何限制?或者我做错了吗?
<dxb:BarButtonItem
x:Name=\"btnDelete\"
Command=\"{Binding BtnDelete_Command}\"
CommandParameter=\"{Binding ElementName=view}\"
KeyGesture=\"SHIFT+Delete\"
Content=\"Delete\" />
解决方法
这是我尝试的代码:
<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());
}
}
它在这里正常工作。如果编辑器未集中精力,则执行命令。如果编辑器集中精力,它将自己处理此组合键,因此不会执行命令。