[英]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.