9

ユーザーがチケット番号を入力する必要があるというポップアップがありTextBox、ユーザーがEnterキーを押したときに、チケットを取得するViewModelにチケット番号を渡す必要があります。

TextBoxこれが:のxamlです。

<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 に答える