Create WPF TextBox that accepts only numbers

Posted by Elad on Stack Overflow See other posts from Stack Overflow or by Elad
Published on 2009-08-04T07:33:50Z Indexed on 2010/06/05 11:32 UTC
Read the original article Hit count: 338

Filed under:
|

I would like to create a TextBox that only accepts numeric values, in a specific range. What is the best way to implement such TextBox?

I thought about deriving TextBox and to override the validation and coercion of the TextProperty. However, I am not sure how to do this, and I understand that deriving WPF control is generally not recommended.


Edit:
What I needed was a very basic textbox that filters out all key presses which are not digits. The easiest way to achieve it is to handle the TextBox.PreviewTextInput event:

 private void textBox_PreviewTextInput(object sender, TextCompositionEventArgs e)
    {
        int result;
        if (!validateStringAsNumber(e.Text,out result,false))
        {
            e.Handled = true;
        }
    }

(validateStringAsNumber is my function that primarily use Int.TryParse)

Some of the suggested solutions are probably better, but for the simple functionality I needed this solution is the easiest and quickest to implement while sufficient for my needs.

© Stack Overflow or respective owner

Related posts about c#

Related posts about wpf