0

WPF MVVMを実行していて、次のXAMLコードがあります。

<TextBox Grid.Row="1" Name="Console" MinWidth="500" HorizontalAlignment="Stretch" AcceptsReturn="True" CharacterCasing="Upper" TextWrapping="WrapWithOverflow" Cursor="IBeam">
  <TextBox.InputBindings>
    <KeyBinding Command="{Binding Path=MyCommand}" CommandParameter="{Binding Text, ElementName=Console}" Key="Enter"/>
  </TextBox.InputBindings>
</TextBox>

ViewModelのコマンドプロパティでEnterキーを押す場合(イベントハンドラーが追加されたコンストラクターで初期化されます):

private readonly MyCommand myCommand;
public ICommand MyCommand
{
  get
  {
    return myCommand;
  }
}

private void OnCommand(object sender, MyCommandEventArgs e)
{
  <do something>
}

イベントハンドラーはallrightと呼ばれますが、Enterキーが押されてもTextBoxに戻されることはなく、改行は追加されません(カーソルは同じ行に留まります)。

イベントバブリングは、Enterキーの押下がTextBoxに渡されることを保証しませんか?

4

1 に答える 1

0

テキストボックスのテキスト値に「\n」を追加していただけませんか?

(それをコメントとして追加したかったのですが、まだそうしていないかもしれません...)

于 2013-01-15T14:47:56.280 に答える