C# 带有AcceptsReturn=true的文本框键绑定
基本上,我有一个文本框,当复选框被取消选中时,它将接受return,当它被选中时,我希望文本框对我编写的键绑定做出反应C# 带有AcceptsReturn=true的文本框键绑定,c#,.net,wpf,textbox,C#,.net,Wpf,Textbox,基本上,我有一个文本框,当复选框被取消选中时,它将接受return,当它被选中时,我希望文本框对我编写的键绑定做出反应 <TextBox AcceptsReturn="{Binding IsChecked, ElementName=EnterCheckbox, Converter={StaticResource InvertBooleanConverter}}" > <TextBox.InputBindings> <KeyBindin
<TextBox AcceptsReturn="{Binding IsChecked, ElementName=EnterCheckbox, Converter={StaticResource InvertBooleanConverter}}" >
<TextBox.InputBindings>
<KeyBinding Key="Enter" Command="{Binding CmdEnterPressed}"/>
</TextBox.InputBindings>
</TextBox >
现在在任何情况下,尽管当我按下
[Return]
键绑定时TextBox.AcceptsReturn
被设置为True,但我不想触发它,而是要转到下一行TB。您可以对该命令执行如下操作:
public bool CanExecute(object parameter)
{
bool acceptReturns = (bool)parameter;
return !acceptReturns;
}
在XAML中(只要CommandParameter用于Execute和CanExecute方法):
您可以像这样为该命令实现CanExecute:
public bool CanExecute(object parameter)
{
bool acceptReturns = (bool)parameter;
return !acceptReturns;
}
在XAML中(只要CommandParameter用于Execute和CanExecute方法):
有相同的问题,建议的解决方案无法解决。下面是我如何解决这个问题的
- 保持第一个文本框的keybinding不变,创建一个几乎完全相同的副本,减去keybinding,并将AcceptReturn设置为true
- 将两者的可见性(倒数第二个)设置/附加到复选框isChecked属性
- 将文本绑定到同一属性
应该有一个更好的解决方案,但这确实解决了我的问题。有同样的问题,建议的解决方案没有解决它。下面是我如何解决这个问题的
- 保持第一个文本框的keybinding不变,创建一个几乎完全相同的副本,减去keybinding,并将AcceptReturn设置为true
- 将两者的可见性(倒数第二个)设置/附加到复选框isChecked属性
- 将文本绑定到同一属性
应该有更好的解决办法,但这对我来说是可行的我试过了,但没用。即使CanExecute返回False,它也始终执行命令机制,而不是AcceptsReturn。现在我正试图用交互性dll来实现这一点。也许它会起作用:)我试过了,但没用。即使CanExecute返回False,它也始终执行命令机制,而不是AcceptsReturn。现在我正试图用交互性dll来实现这一点。也许它会起作用:)