wpf binging(五) 数据的转换与验证

Posted on 2019-04-11 14:19  熊先生丶  阅读(192)  评论(0编辑  收藏  举报

1.数据的验证,有时候需要验证同步的数据是否正常

 需要派生一个类 ValidationRule

 

再把这个类指定给binging 进行验证

 

在这里如果验证不通过 textbox就会变成红色并且发出警告数据将不会同步到数据源,但是警告UI并不可见 需要添加事件暴露出来 

默认验证只对 UI改变数据源才出发验证,如果想 数据源改变UI也触发验证 

如果想要 把验证错误以后报的错误,显示出来,需要添加 路由事件,路由事件会一直向上传播,如果被每个函数处理完成,消息就会终止 

所以想捕获这条消息并且显示出来,需在textbox 或者他的父控件上 添加路由事件 如下图

需要先把binging的 NotifyOnValidationError 设置成true 让消息能生成

 然后在 textbox1上 添加路由事件 即可 

2.数据转换 

   有时候需要对binging的双方做数据转换,比如 textbox 的 text属性 和 Checkbox checkd 属性 绑定 ,在textbox text属性 等于"123" checkbox checked 就设置成true 这种需要用到数据转换

需要实现接口 Ivalueconverter   它的定义如下

Convert 和 ConvertBack 相对  数据源转成UI    UI转换成数据源 分别需要怎么转换 

 value代表 当前值