WPF 数据验证实现步骤
来源:互联网 发布:遗传算法 量化投资 编辑:程序博客网 时间:2024/05/12 01:39
--- 数据验证
1、使用ValidationRule验证 需实现其子类,自定义验证规则,即重写Validate(object value, System.Globalization.CultureInfo cultureInfo)方法
2、需验证的控件的UpdateSourceTrigger属性触发Validate方法。需配置Binding类的Source,Path属性,否则无法正常触发。(如果mode:OneWayToSource,可臆造一个属性绑定)。
3、使用Validation.ErrorTemplate自定义错误显示。
示例部分代码:
<Window.Resources>
<ControlTemplate x:Key="validationTemplate">
<DockPanel>
<TextBlock Foreground="Red" FontSize="20">!</TextBlock>
<AdornedElementPlaceholder />
</DockPanel>
</ControlTemplate>
<src:AgeDataRule x:Key="MaxAge"/>
<Style x:Key="textStyleTextBox" TargetType="TextBox">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="ToolTip"
Value="{Binding RelativeSource={RelativeSource Self},Path=(Validation.Errors)[0].ErrorContent}"/>
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
<TextBox Name="Age" Validation.ErrorTemplate="{StaticResource validationTemplate}" Style="{StaticResource textStyleTextBox}" Width="100" Height="20" VerticalAlignment="Center">
<TextBox.Text>
<Binding Source="{StaticResource MaxAge}" Path="Val" UpdateSourceTrigger="PropertyChanged" Mode="TwoWay" >
<Binding.ValidationRules>
<src:AgeDataRule />
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
public class AgeDataRule : ValidationRule
{
public string Val { get; set; }//臆造的属性,只是用于绑定,无实际意义
public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
{
int age = -1;
if (Int32.TryParse(value.ToString(), out age))
{
if (age < 0 || age > 120)
{
return new ValidationResult(false, "年龄需在0至120之间!");
}
else
{
return ValidationResult.ValidResult;
}
}
else
{
return new ValidationResult(false, "输入的字符串格式不正确!");
}
}
}
- WPF 数据验证实现步骤
- WPF数据绑定步骤
- WPF( 数据验证)
- WPF TextBox数据验证
- 【wpf】wpf对数据的绑定验证
- WPF 国际化具体实现步骤
- wpf数据验证(转)
- WPF数据验证----错误模板
- wpf数据出错验证模板
- WPF Binding Validation 数据验证
- 实现WPF元素同CLR元素的数据绑定的一般步骤
- WPF and Silverlight 学习笔记(二十二):使用代码实现绑定、绑定数据的验证
- WPF(MultiBinding 数据对比验证,启用提交)
- WPF 使用ValidationRule进行表单数据验证
- java实现验证码步骤
- Android短信验证实现步骤
- WPF中实现验证码功能
- WPF中实现验证码功能
- CGAL的简介及安装设置
- Ubuntu中VirtualBox不能使用USB(此法不通)
- MFC: 多人聊天服务器 服务器端之OICPServer类
- 【JS】底部版权常用写法
- 基于Verilog的防抖动程序
- WPF 数据验证实现步骤
- MFC: 多人聊天服务器 服务器端之ChatServer(OICPServer类的子类)
- 关于firefox 打开https 报错: (错误码: ssl_error_ssl_disabled)(已经解决)
- CVSNT安装后出现种种问题
- HOOK编程
- Boost库的介绍
- 格式化输出
- 堆数组实现评委评分
- MessageBox 上显示的中文 确定 与所选系统语言无关与操作系统语言环境有关