自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 WPF数据验证(6)—— IDataErrorInfo + DataAnnotations

前面介绍过居于 IDataErrorInfo 接口的数据验证。利用 IDataErrorInfo 的好处是它可用于轻松地处理交叉耦合属性。但也具有一个很大的弊端:索引器的实现通常会导致较大的 switch-case 语句(对象中的每个属性名称都对应于一种情况),必须基于字符串进行切换和匹配,并返回指示错误的字符串。而且,在对象上设置属性值之前,不会调用 IDataErrorInfo 的实现。

2013-02-07 20:47:22 2020

原创 WPF数据验证(5)—— 错误模板

<TextBlock DockPanel.Dock="Bottom" Foreground="Red" Text="{Binding ElementName=adorned,Path=AdornedElement.(Validation.Errors)[0].ErrorContent}"/>

2013-02-07 20:02:40 2112

原创 WPF数据验证(4)——响应与获取验证错误

前面的示例中,有关用户接受到错误的唯一指示是在违反规则的文本框周围的红色轮廓。为了提供更多信息,可以处理 Error 事件,但存储或清除错误时会引发该事件,但前提是必须确保已将 Binding.NotifyOnValidationError 属性设置为 True。Error 事件是一个使用冒泡策略的路由事件,所以可以通过在父容器中关联事件处理程序为多个控件处理 Error 事件:事

2013-02-07 18:38:22 3635

原创 WPF数据验证(3)——自定义验证规则

应用自定义验证规则的方法和应用自定义转换器的方法类似。该方法定义了一个 ValidationRule 的类,并且为了执行验证重写 Validate 方法。public class PositivePriceRule : ValidationRule{ public override ValidationResult Validate(object value, System

2013-02-07 16:24:29 2142

原创 WPF数据验证(2)—— DataErrorValidationRule 验证规则

有时候我们可能不喜欢通过引发异常来指示用户输入错误。这可能是因为一下几个原因:异常不是由用户输入错误造成的,而可能是由于多个值之间的交互造成的,并且有时为了进行进一步处理,保存不正确的数值是值得的,而不是完全拒绝它们。下面是 Product 类的修订版,该版本实现了 IDataErrorInfo 接口。namespace ValidationRuleDemo{ public cla

2013-02-07 15:40:52 2405

原创 WPF数据验证(1)—— ExceptionValidationRule验证规则

ExceptionValidationRule 是预先构建的验证规则,它向WPF报告所以的异常。要使用 ExceptionValidationRule 验证规则,必须将它添加到 Binding.ValidationRules 集合中:Xaml:<Window x:Class="ValidationRuleDemo.MainWindow" xmlns="http://sche

2013-02-07 15:13:14 2332

原创 MVVM中轻松实现Command绑定(三)任意事件的Command

WPF中不是所有的控件都有Command属性的,如果窗体我需要在ViewModel中处理Loaded事件命令,或者其他事件的命令时,很难都过绑定Command完成,必须要注册依赖属性或事件等,太麻烦了。我喜欢简约、有效的方式,现在我和大家一起分享一下。场景,我需要处理Button的Click和MouseMove事件,但又避免用后置代码,尽量要在ViewModel中获取。单独一个Click可

2013-02-05 21:44:23 532

原创 MVVM中轻松实现Command绑定(二)传递Command参数

我们如果需要在Command中传递参数,实现也很简单。DelegateCommand还有一个DelegateCommand版本,可以传递一个T类型的参数。1.View的Button绑定,其中CommandParameter定义了一个“Baby”的参数<Window x:Class="MVVMCommand.MainWindow" xmlns="http://sche

2013-02-05 21:38:05 674

原创 MVVM中轻松实现Command绑定(一)简单绑定

1.项目中添加Prism.dll引用2.创建ViewModel,定义ICommand命令和委托方法,注意DelegateCommand是Prism中的类public ICommand ButtonCommand{ get{ return new DelegateCommand(new Action(() =>{

2013-02-05 21:10:18 624

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除