当填写表单时,需要对填写的内容进行验证,检查数据是否符合要求,比如字符串的长度、日期的格式、数字等。WPF支持自定义验证规则,并提供可视化反馈,以便在输入无效值时向用户发出通知。
下面的示例将演示一个模拟员工信息录入的过程,如果年龄不再给定的输入范围内,将在文本框的后面显示一个红色的叹号,当鼠标移至错误文本框时,显示提示消息,提示用户正确的输入格式。
主要内容为:自定义验证规则、定义输入错误时控件的外观、定义样式触发器显示错误提示
自定义验证规则
可以继承ValidationRule类,重写Validate方法,实现自定义的验证规则
下面是年龄的验证规则的实现:
![]()
class AgeRangeRule : ValidationRule
{
private int _min;
private int _max;
public AgeRangeRule()
{
}
public int Min
{
get {
return _min; }
set { _min =
value; }
}
public int Max
{
get {
return _max; }
set { _max =
value; }
}
public override ValidationResult Validate(
object value, CultureInfo cultureInfo)
{
int age = 0;
try
{
if (((
string)
value).Length > 0)
age = Int32.Parse((String)
value);
}
catch (Exception e)
{
return new ValidationResult(
false, "
输入的数字无效!");
}
if ((age < Min) || (age > Max))
{
return new ValidationResult(
false,
"
输入的年龄范围必须在: " + Min + "
- " + Max + "
之间");
}
else
{
return new ValidationResult(
true,
null);
}
}
}
View Code