evento - textbox keypress enter c# asp net
Comando para WPF TextBox que se activa cuando pulsamos Enter Key (4)
Ario, no todos los objetos WPF admiten comandantes. Entonces, si quieres hacer eso, necesitarás llamar a tu modelo de vista desde tu código (un poco acoplado) o usar alguna implementación de MVVM Messaging para desacoplarlo. Consulte el kit de herramientas de MVVM Light Messaging para ver un ejemplo. O simples disparadores de uso como este:
<TextBox>
<i:Interaction.Triggers>
<i:EventTrigger EventName="KeyUp">
<i:InvokeDataCommand Command="{Binding MyCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</TextBox>
Es muy fácil vincular Button
s en aplicaciones WPF a Command
s en una clase VIEWMODEL
. Me gustaría lograr un enlace similar para un TextBox
.
Tengo un TextBox
y necesito vincularlo a un Command
que se activa cuando presiono Enter mientras el TextBox
está enfocado. Actualmente, estoy usando el siguiente controlador para el evento KeyUp
, pero se ve feo ... y no puedo ponerlo en mi clase VIEWMODEL
.
private void TextBox_KeyUp(object sender, KeyEventArgs e)
{
if (e.Key == System.Windows.Input.Key.Enter)
{
// your event handler here
e.Handled = true;
MessageBox.Show("Enter Key is pressed!");
}
}
¿Hay una mejor manera de hacer esto?
He enfrentado el mismo problema y he encontrado una solución here , aquí está el ejemplo del código:
<TextBox>
<TextBox.InputBindings>
<KeyBinding Command="{Binding Path=CmdSomething}" Key="Enter" />
</TextBox.InputBindings>
</TextBox>
Me gusta la respuesta de Sarh, pero no funcionaría en mi programa, a menos que cambiara Enter
por Return
:
<TextBox>
<TextBox.InputBindings>
<KeyBinding Key="Return" Command="{}" />
</TextBox.InputBindings>
</TextBox>
Puede establecer verdadero en la propiedad AcceptReturn.
<TextBox AcceptsReturn="True" />