本文主要是介绍TextBox中的Validation属性,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
作用:Validation可以使用Validation.ErrorTemplate指定如果输入不符合验证使用的控件模板,TextBox.Text中的Binding中有Binding.ValidationRules指定验证规则
错误的时候使用的控件模板
<ControlTemplate x:Key="validationTemplate"><DockPanel><!-- 这个控件是占位的,加上这个提示文字就不会占用输入TextBox了 --><AdornedElementPlaceholder /><TextBlockMargin="0,0,20,0"FontSize="16"Foreground="Yellow">*数据不符合规范</TextBlock></DockPanel>
</ControlTemplate>
验证类:
public class AgeRangeRule : ValidationRule
{public AgeRangeRule(){}private int _min;public int Min{get { return _min; }set { _min = value; }}private int _max;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 ex){return new ValidationResult(false, "非法字符:" + ex.Message);}if ((age < Min) || (age > Max)){return new ValidationResult(false, "请输入正确年龄范围内的值:" + Min + "-" + Max);} else{return new ValidationResult(false, null);}}
}
使用:
<TextBoxx:Name="textBox1"Grid.Row="1"Grid.Column="1"Width="80"Margin="2"FontSize="15"Style="{StaticResource textBoxInError}"Validation.ErrorTemplate="{StaticResource validationTemplate}"><TextBox.Text><BindingPath="Age"Source="{StaticResource user}"UpdateSourceTrigger="PropertyChanged" ><Binding.ValidationRules><local:AgeRangeRule Max="130" Min="21"/></Binding.ValidationRules></Binding></TextBox.Text>
</TextBox>
-- 写得有点多了,其实主要就Validation.ErrorTemplate和Binding.ValidationRules
这篇关于TextBox中的Validation属性的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!