數據綁定模式共有四種:OneTime、OneWay、OneWayToSource和TwoWay,默認是TwoWay。通常來講,完成數據綁定要有三個要點:目標屬性是依賴屬性、綁定設置和實現了INotifyPropertyChanged接口的數據源(數據上下文)。blog
OneTime:一次性有效,以後數據源的變化不會對目標屬性有任何影響;固然,目標屬性的改變也不對數據源有影響。代碼以下接口
OneWay:單向做用,數據源的改變會反映到目標屬性上;但目標屬性的改變不對數據源有影響。代碼以下:class
OneWayToSource:單向做用,跟OneWay的方向相反,目標屬性的改變會更新到數據源上;但數據源的更新不會通知目標屬性。在這種模式下,目標屬性值初始狀態通常爲空,由於數據源的值對其不起做用。代碼以下: 後臺
TwoWay:雙向做用,即目標屬性的改變會更新到數據源上,數據源的更新也會通知目標屬性。這是綁定的默認方式,能夠省略。代碼以下:im
到此這幾種模式就介紹完了。不過,我這裏還有個有趣的問題:若是數據源沒有實現INotifyPropertyChanged接口,這幾種模式還能正常工做嗎?我作了一些嘗試,得出的結論是:數據
一、OneTime模式根本不受影響;di
二、若是在後臺代碼中更改了數據源,目標屬性不會獲得通知;工作
三、若是在界面上更改目標屬性,數據源會收到更新通知。數據綁定
不實現INotifyPropertyChanged接口的數據源到底有沒有意義,以及爲什麼會出現以上的現象,我還須要深刻研究。界面