数据绑定模式共有四种:OneTime、OneWay、OneWayToSource和TwoWay,默认是TwoWay。通常来讲,完成数据绑定要有三个要点:目标属性是依赖属性、绑定设置和实现了INotifyPropertyChanged接口的数据源(数据上下文)。blog
OneTime:一次性有效,以后数据源的变化不会对目标属性有任何影响;固然,目标属性的改变也不对数据源有影响。代码以下接口
OneWay:单向做用,数据源的改变会反映到目标属性上;但目标属性的改变不对数据源有影响。代码以下:class
OneWayToSource:单向做用,跟OneWay的方向相反,目标属性的改变会更新到数据源上;但数据源的更新不会通知目标属性。在这种模式下,目标属性值初始状态通常为空,由于数据源的值对其不起做用。代码以下: 后台
TwoWay:双向做用,即目标属性的改变会更新到数据源上,数据源的更新也会通知目标属性。这是绑定的默认方式,能够省略。代码以下:im
到此这几种模式就介绍完了。不过,我这里还有个有趣的问题:若是数据源没有实现INotifyPropertyChanged接口,这几种模式还能正常工做吗?我作了一些尝试,得出的结论是:数据
一、OneTime模式根本不受影响;di
二、若是在后台代码中更改了数据源,目标属性不会获得通知;工作
三、若是在界面上更改目标属性,数据源会收到更新通知。数据绑定
不实现INotifyPropertyChanged接口的数据源到底有没有意义,以及为什麽会出现以上的现象,我还须要深刻研究。界面