繁体   English   中英

验证并获取文本框的值

[英]Validation and getting a value of a textbox

早上好,

我正在使用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代码上使用专有财产吗?

我需要在XAML代码上使用专有财产吗?

的确,如果使用MVVM模式,则需要在ViewModel中有一个属性。

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

    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;
        }
    }

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

由于您使用的是PreviewTextInput事件,因此可以从e.Text获取新文本,并可以从sender参数中获取已输入的文本,该参数引用了引发事件的对象(在本例中为TextBox ):

private void NumberValidationTextBox(object sender, TextCompositionEventArgs e)
{
    String newText = e.Text;
    TextBox textBox = (TextBox)sender;
    String existingText = textBox.Text;
    .......
    .......
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM