如何以编程方式使用EventTrigger和InvokeCommandAction?

Bra*_*ore 9 wpf mvvm

我有一个弹出窗口,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>
Run Code Online (Sandbox Code Playgroud)

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

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

Adr*_*ciu 22

您可以使用InputBindings - KeyBinding替代方法.

像这样的东西:

<TextBox x:Name="TicketNumber">
    <TextBox.InputBindings>
        <KeyBinding Key="Enter"
                    Command="{Binding OpenTicketCommand}" 
                    CommandParameter="{Binding ElementName=TicketNumber,
                                               Path=Text}"/>
    </TextBox.InputBindings>
</TextBox>
Run Code Online (Sandbox Code Playgroud)