基本上我有一个文本框,当取消选中复选框时它会接受返回,当它被检查时我希望文本框对我写的KeyBinding作出反应。
<TextBox AcceptsReturn="{Binding IsChecked, ElementName=EnterCheckbox, Converter={StaticResource InvertBooleanConverter}}" >
<TextBox.InputBindings>
<KeyBinding Key="Enter" Command="{Binding CmdEnterPressed}"/>
</TextBox.InputBindings>
</TextBox >
现在在任何情况下,尽管我按下TextBox.AcceptsReturn
时[Return]
设置为True,但KeyBinding正在触发,我想不要触发它,而是转到下一行TB。
答案 0 :(得分:1)
您可以为此命令实现CanExecute,如下所示:
public bool CanExecute(object parameter)
{
bool acceptReturns = (bool)parameter;
return !acceptReturns;
}
在你的XAML中(至于CommandParameter用于Execute和CanExecute方法):
<KeyBinding Key="Enter" Command="{Binding CmdEnterPressed}"
CommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type TextBox}}, Path=AcceptsReturn}"/>
答案 1 :(得分:0)
遇到同样的问题,建议的解决方案无法解决问题。以下是我如何解决这个问题。
应该有更好的解决办法,但这对我来说是