按下Enter键时,WPF MVVM取消选择文本框
本文关键字:取消 选择 文本 MVVM WPF Enter 键时 按下 | 更新日期: 2023-09-27 18:27:40
我想要的是当用户按下回车键时,当前聚焦的文本框何时失去焦点。我认为实现这一点的唯一方法是使用XAML中的输入绑定绑定到代码中的命令,该命令将整个文本框控件传递到视图模型。我不喜欢这种方法,希望有人能"干净"地处理这个问题。
您可以创建一个自定义文本框,并将其放入控件代码中:
public partial class CustomTextBox : TextBox
{
public CustomTextBox()
{
InitializeComponent();
}
protected override void OnKeyDown(KeyEventArgs e)
{
base.OnKeyDown(e);
if(e.Key == Key.Return)
Keyboard.ClearFocus();
}
}
然后,只要在任何你想要的特定行为的地方使用你的自定义文本框。
登录时通常会得到一个密码框,您需要在其中允许输入键。
<PasswordBox VerticalAlignment="Center" x:Name="txtPassword" Template="{StaticResource PassBoxBaseControlTemplate}" Height="25" BorderBrush="Black" Width="165.031">
<PasswordBox.InputBindings>
<KeyBinding Key="Enter" Command="{Binding ComLoginClickOK}" CommandParameter="{Binding ElementName=txtPassword}"/>
</PasswordBox.InputBindings>
</PasswordBox>