WPF 4.5中對綁定的改善
盡管WPF已經不再是明星產品,但它在Windows富客戶端開發中的地位還是舉足輕重。它擁有對.NET類庫以及底層操作系統完全的訪問權限,沒有任何其他HTML或者基于.NET的用戶界面技術能夠與之相提并論。微軟意識到了它的重要性,并將繼續對其投資以做出改善,特別是對其綁定(binding)功能。
首先是支持通過類名與靜態屬性綁定。語法和一般的綁定有少許不同。Pete Brown解釋說:
你會注意到,我們是對綁定語法做出了修改。你會用括號把命名空間、類和屬性括起來,因為正如Sam Bent曾經和我說過“它們告訴我們要把路徑解析為ClassName.PropertyName而不是PropertyName.PropertyName。”
由于對屬性的綁定經常需要變更通知(change notifications),所以WPF 4.5提供了兩種設計模式。第一種是創建形式為“public static event EventHandler [PropertyName]Changed”的一次性事件。如果需要監控多個屬性,那么就要使用一般目的的事件。這會使用“public static event EventHandler StaticPropertyChanged”的形式來聲明。
另一種在WPF 4.5中增加的特性是延遲綁定(delay binding)。一般數據變更會立刻從控制器推給模型。當設置了延遲時,直到用戶在指定的時間段內不再做變更,更新的值才會推給模型。Pete提供了一些示例,還指出:
查看英文原文: Binding Enhancements in WPF 4.5這種特性另一個有用的地方在于,你可以把數據綁定在想要捕獲遞增變更的TextBox上,但此時消耗的資源(例如一次搜索)在某種程度上比較高。在那種情況下,你可以稍微暫停等待一下,比方說在按鍵之間加100毫秒的等待,然后再執行搜索。