验证并获取文本框的值

时间:2014-04-18 10:08:26

标签: c# wpf validation xaml

早上好,

我正在研究wpf应用程序,我需要获取文本框的值,并在同一时间检查它的编号!我检查了网上的tutos和论坛,我发现了`

private void NumberValidationTextBox(object sender, TextCompositionEventArgs e)
    {
        Regex regex = new Regex("[^0-9]+");
        e.Handled = regex.IsMatch(e.Text);
    }

这是我的XAML代码中的代码

<TextBox x:Name="sb" Width="50" Height="20" PreviewTextInput="NumberValidationTextBox" />

但我无法看到我如何在该方法和我想从中获取值的对象(文本框)之间建立链接。我是否需要在XAML代码上使用一个属性?

3 个答案:

答案 0 :(得分:1)

  

我是否需要在XAML代码上使用一个属性?

实际上,如果使用MVVM模式,则需要ViewModel中的属性。

在ViewModel上实现该属性后,请确保通过实现INotifyPropertyChanged来提供通知功能。将您的属性绑定到TextBox的Text属性(双向以便将View中所做的更改传递给ViewModel,反之亦然)并将您的验证包含在属性的set方法中。

答案 1 :(得分:0)

    private void textBox1_KeyPress(object sender, KeyPressEventArgs e) //textbox1=your text box name
    {
        char ch = e.KeyChar;
        if (!Char.IsDigit(ch) && ch != 8)
        {
            e.Handled = true;
        }
    }

此代码不允许您输入除数值以外的任何内容!

答案 2 :(得分:0)

由于您正在使用PreviewTextInput事件,因此您可以从e.Text获取新文本,并且已经从sender参数输入了文本,该参数引用了引发事件的对象(您的{{1}在这种情况下):

TextBox