我有以下代码:
<Button Focusable="True">
<Button.InputBindings>
<MouseBinding Gesture="LeftClick" Command="{Binding ButtonClickedCommand}" />
<MouseBinding Gesture="CTRL+LeftClick" Command="{Binding ButtonClickedWithCtrlCommand}" />
</Button.InputBindings>
</Button>
视图模型是这样的
public ICommand ButtonClickedCommand { get; }
public ICommand ButtonClickedWithCtrlCommand { get; }
...
{
ButtonClickedCommand = new DelegateCommand(() => { });
ButtonClickedWithCtrlCommand = new DelegateCommand(() => { });
}
现在,如果我单击该按钮,则该命令将正确执行。但不知何故,按钮的焦点没有得到设置。有人能告诉我为什么吗?
似乎该命令阻止了单击的基本功能(例如按钮向下签证)。有没有办法在使用 InputBindings 时调用它?
PS:我知道我可以通过行为和“事件到命令绑定”来实现相同的效果(实际上我就是这样修复它的)。也许我滥用了输入绑定,我不应该首先将它用于已经绑定的“事物”(如点击等)?