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代表 当前值