我想验证用户输入以确保它们是整数。我该怎么做?我想用IDataErrorInfo
这似乎是在 WPF 中进行验证的“正确”方法。所以我尝试在我的 ViewModel 中实现它。
但问题是我的文本框绑定到一个整数字段,并且不需要验证是否int
is an int
。我注意到 WPF 会自动在文本框周围添加红色边框以通知用户错误。基础属性不会更改为无效值。但我想通知用户这一点。我该怎么做?
另一种方法是不允许使用非整数的值。
下面的实现有点糟糕,我想稍后将其抽象化,以便它更可重用,但这就是我所做的:
在我看来,在后面的代码中(我知道如果你是铁杆 mvvm 的话这可能会受到伤害;o))
我定义了以下函数:
private void NumericOnly(System.Object sender, System.Windows.Input.TextCompositionEventArgs e)
{
e.Handled = IsTextNumeric(e.Text);
}
private static bool IsTextNumeric(string str)
{
System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex("[^0-9]");
return reg.IsMatch(str);
}
在 XAML 视图中,每个应该只接受整数的文本框
定义如下:
<TextBox Padding="2" TextAlignment="Right" PreviewTextInput="NumericOnly" Text="{Binding xxx.yyyy}" MaxLength="1" />
关键属性是 PreviewTextInput
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)