C# WPF-按文本框上的Enter键执行命令

C# WPF-按文本框上的Enter键执行命令,c#,wpf,C#,Wpf,我已经看到了无数的方法来做到这一点-他们似乎都或多或少相同。但我根本无法让它工作 <TextBox x:Name="Assetbox" Text="{UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" VerticalAlignment="Center" Width="120" VerticalContentAlignment="Center" Gr

我已经看到了无数的方法来做到这一点-他们似乎都或多或少相同。但我根本无法让它工作

<TextBox x:Name="Assetbox" Text="{UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" VerticalAlignment="Center" Width="120" VerticalContentAlignment="Center" Grid.Column="2" Grid.ColumnSpan="3">
    <TextBox.InputBindings>
        <KeyBinding Key="Return" Command="{Binding IPfind, Mode=OneWay}"/>
    </TextBox.InputBindings>
</TextBox>

这是我所看到的几件事情的混合体,就在我撞到墙上并决定寻求帮助的时候。拜托-我在搞什么鬼


按enter键根本不起任何作用,如果我通过单击按钮来运行IPfind命令,它就可以正常工作,但我希望避免这种情况。非常感谢您的帮助。

如果操作完全错误,我将文本框的属性更改为:

 <TextBox x:Name="Assetbox" KeyDown="IPfind" HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" VerticalAlignment="Center" Width="120" VerticalContentAlignment="Center" Grid.Column="2" Grid.ColumnSpan="3"/>

键绑定对我来说很有用,愚蠢的问题:当你按下Return键时,文本框有焦点吗?说实话,一点也不愚蠢-我对这方面还不熟悉,但它没有“聚焦”在它上面。。。应该吗?它的工作方式是在一个文本框中键入一个主机名,“按下按钮”将把ip填充到另一个文本框中。但是我不想点击按钮,而是想按“回车”键。只有很少的选项可以让它不起作用。
文本框
需要是活动控件,因此您应该在文本字段中看到闪烁的插入符号。超过此限制后,
TextBox
需要将其
DataContext
设置为具有
ICommand
的viewmodel。这通常会被继承,但是如果您有更多的问题,那么完整的xaml和viewmodel将有助于解决问题。我使用
修复了它,然后在命令中添加了if语句
if(e.Key==Key.Enter)
啊,我不理解,您一定要使用事件处理程序。您最初使用的密钥绑定希望绑定到
ICommand
属性。
private void IPfind(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Enter)
    {