WPF validation on Enter Key Up
        Posted  
        
            by Martin
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by Martin
        
        
        
        Published on 2010-04-19T23:55:21Z
        Indexed on 
            2010/04/20
            0:03 UTC
        
        
        Read the original article
        Hit count: 303
        
wpf
|databinding
I'm trying to validate a UI change when Enter key is pressed. The UI element is a textbox, which is data binded to a string. My problem is that the data binding hasn't updated TestText when Enter key is Up. It is only updated when I press the button which brings up a message box.
/// <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);
    }
}
Window 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"
TextBox XAML:
TextBox Name="myTextBox" Text="{Binding TestText}"
Button XAML:
Button Name="button1" Click="button1_Click"
        © Stack Overflow or respective owner