我正在做 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 的 command 属性中处理 Enter 按下时(在构造函数中初始化并添加了事件处理程序):
private readonly MyCommand myCommand;
public ICommand MyCommand
{
get
{
return myCommand;
}
}
private void OnCommand(object sender, MyCommandEventArgs e)
{
<do something>
}
事件处理程序被调用了,但是 Enter 按键永远不会传递回 TextBox 并且不会添加换行符(光标停留在同一行上)。
事件冒泡不能确保 Enter 按键被传递到 TextBox 吗?