9

我有一个弹出窗口,TextBox用户应在其中输入票号,然后当用户按下回车键时,我希望将票号传递给将检索票的 ViewModel。

这是 xaml 的TextBox

<TextBox x:Name="TicketNumber">
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="KeyDown">
            <i:InvokeCommandAction Command="{Binding OpenTicketCommand}" 
                                   CommandParameter="{Binding ElementName=TicketNumber,
                                                              Path=Text}"/>
        </i:EventTrigger>
    </i:Interaction.Triggers>
</TextBox>

以上适用于任何按键,但我真的只希望它在按下回车键时发生。我该怎么做呢?

编辑:我假设它必须以编程方式完成(因此标题),但如果不是那也没关系。

4

1 回答 1

21

您可以InputBindings - KeyBinding用作替代方法。

像这样的东西:

<TextBox x:Name="TicketNumber">
    <TextBox.InputBindings>
        <KeyBinding Key="Enter"
                    Command="{Binding OpenTicketCommand}" 
                    CommandParameter="{Binding ElementName=TicketNumber,
                                               Path=Text}"/>
    </TextBox.InputBindings>
</TextBox>
于 2013-01-17T11:31:59.803 回答