早上好,
我正在研究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代码上使用一个属性?
答案 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