Estoy intentando validar un cambio de UI cuando se presiona la tecla Entrar. El elemento UI es un cuadro de texto, que es información enlazada a una cadena. Mi problema es que el enlace de datos no ha actualizado TestText cuando la tecla Intro está Arriba. Solo se actualiza cuando presiono el botón que muestra un cuadro de mensaje.Validación de WPF al introducir la tecla
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1 : Window, INotifyPropertyChanged
{
String _testText = new StringBuilder("One").ToString();
public string TestText
{
get { return _testText; }
set { if (value != _testText) { _testText = value; OnPropertyChanged("TestText"); } }
}
public Window1()
{
InitializeComponent();
myGrid.DataContext = this;
}
private void OnPropertyChanged(string property)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(property));
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void onKeyUp(object sender, KeyEventArgs e)
{
if (e.Key != System.Windows.Input.Key.Enter) return;
System.Diagnostics.Trace.WriteLine(TestText);
}
private void button1_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show(TestText);
}
}
Ventana XAML:
Window x:Class="VerificationTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300" KeyUp="onKeyUp"
cuadro de texto XAML:
TextBox Name="myTextBox" Text="{Binding TestText}"
botón XAML:
Button Name="button1" Click="button1_Click"
Hay un hilo relacionado en http://stackoverflow.com/questions/563195/wpf-textbox-databind-on-enterkey-press –