Es muy fácil vincular Button
correos electrónicos en aplicaciones WPF a correos electrónicos Command
en una VIEWMODEL
clase. Me gustaría lograr un enlace similar para a TextBox
.
Tengo un TextBox
y necesito unirlo a un Command
que se enciende cuando golpeo Entermientras el TextBox
está enfocado. Actualmente, estoy usando el siguiente controlador para el KeyUp
evento, pero se ve feo ... y no puedo ponerlo en mi VIEWMODEL
clase.
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?
Me enfrenté al mismo problema y encontré una solución aquí , aquí está el ejemplo de código:
<TextBox> <TextBox.InputBindings> <KeyBinding Command="{Binding Path=CmdSomething}" Key="Enter" /> </TextBox.InputBindings> </TextBox>
fuente
UpdateSourceTrigger=PropertyChanged
su enlace TextBox para que esto funcione.Button.IsDefault
no ayuda mucho, si cada cuadro de texto debe activar un botón diferente y / o comando enlazado.Me gusta la respuesta de Sarh, pero no funcionaría en mi programa, a menos que cambie
Enter
aReturn
:<TextBox> <TextBox.InputBindings> <KeyBinding Key="Return" Command="{}" /> </TextBox.InputBindings> </TextBox>
fuente
<TextBox Text="{Binding FieldThatIAmBindingToo, UpdateSourceTrigger=PropertyChanged}"> <TextBox.InputBindings> <KeyBinding Command="{Binding AddCommand}" Key="Return" /> </TextBox.InputBindings> </TextBox>
Tomé respuesta desde aquí
fuente
Puede establecer true en la propiedad AcceptReturn.
<TextBox AcceptsReturn="True" />
fuente