WPF中添加一个文本输入框,按Enter回车,执行绑定的Command

在WPF+WMMV模式中使用键盘和鼠标事件的绑定代码如下:

<TextBox x:Name="SearchBox" Text="{Binding SearchText}" Width="246" Height="24" HorizontalAlignment="Right" PreviewKeyDown="SearchBox_OnKeyDown">
             <TextBox.InputBindings>
                   <KeyBinding Command="{Binding KeyEventCommand}" Key="Enter"/>//绑定键盘输入事件

            <dxg:GridControl.InputBindings>

                <MouseBinding Command="{Binding ProductDoubleClickCommand}" CommandParameter="{Binding ElementName=ProductCtrl,Path=CurrentItem}"                                                                   MouseAction="LeftDoubleClick"/>//绑定鼠标事件

           </dxg:GridControl.InputBindings>

             </TextBox.InputBindings>
 </TextBox>

上面需要注意的是:搜索文本框的输入文本在按Enter后虽然会触发事件,但是获取不到搜索文本框的输入文本值,因此需要是搜索文本框的输入文本在按Enter后失去焦点,

多以添加PreviewKeyDown="SearchBox_OnKeyDown,

 private void SearchBox_OnKeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Enter)
            {
                SearchBox.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
            }
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WPF ,可以通过命令绑定和输入绑定处理文本框的 Enter 键事件。以下是示例代码: 1.首先,需要在 ViewModel 创建一个实现 `ICommand` 接口的命令,用于处理 Enter 键事件: ```csharp public class MyViewModel { public ICommand EnterCommand { get; set; } public MyViewModel() { EnterCommand = new RelayCommand(OnEnter); } private void OnEnter() { // 处理 Enter 键事件 MessageBox.Show("Enter 键被按下!"); } } ``` 在上面的代码,我们创建了一个名为 `EnterCommand` 的命令,并在其构造函数使用 `RelayCommand` 类创建了一个新的命令。`RelayCommand` 是一个自定义的命令类,它可以将一个方法绑定到 `ICommand` 接口上。 在 `OnEnter` 方法,我们可以处理 Enter 键事件,例如弹出一个消息框提示用户 Enter 键被按下了。 2.然后,在 XAML ,需要将文本框的 `InputBindings` 属性绑定到 `EnterCommand` 命令: ```xaml <Window x:Class="MyApp.MyWindow" xmlns:vm="clr-namespace:MyApp.ViewModels" xmlns:i="http://schemas.microsoft.com/xaml/behaviors" xmlns:cmd="http://www.galasoft.ch/mvvmlight" Title="My Window"> <Window.DataContext> <vm:MyViewModel /> </Window.DataContext> <Grid> <TextBox> <i:Interaction.Triggers> <i:EventTrigger EventName="KeyDown"> <cmd:EventToCommand Command="{Binding EnterCommand}" /> </i:EventTrigger> </i:Interaction.Triggers> </TextBox> </Grid> </Window> ``` 在上面的代码,我们首先将窗口的 `DataContext` 属性绑定到 `MyViewModel` 实例。然后,我们在文本使用了 `Interaction.Triggers` 和 `EventTrigger`,将文本框的 `KeyDown` 事件绑定到 `EnterCommand` 命令。在 `EventToCommand` ,我们将 `Command` 属性绑定到 `EnterCommand` 命令。 这样,当用户在文本按下 Enter 键时,将会触发 `EnterCommand` 命令并调用 `OnEnter` 方法来处理事件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值