如何避免多行TextBox使用InputBindings时会吞下Enterpress?

时间:2013-01-15 11:21:21

标签: c# wpf mvvm

我正在使用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 keypress永远不会传递回TextBox,并且不会添加换行符(光标停留在同一行上)。

事件冒泡是否确保将Enter键传递到TextBox?

1 个答案:

答案 0 :(得分:0)

您可以在文本框中添加“\ n”文本值吗?

(可能会将其添加为评论,但我可能还没有这样做......)