2011-04-10 28 views

回答

4

您不應該考慮實施INotifyCollectionChanged作爲解決方法 - 這實際上是WPF中的良好實踐。

(請注意,您可以填充System.ComponentModel.BindingList來代替。綁定到這個列表將作爲列表的變化自動更新WPF控件。)

那麼,爲什麼是明確的數據綁定在ASP.NET的標準做法,而observer pattern用於WPF?這來自兩種環境的不同性質。

ASP.NET是關於創建和填充網頁的。網頁不會自行更新;當用戶執行回發時,整個新網頁被重新創建。因此,採用批處理方法是有效的:彙總所有數據,然後說「確定,數據已準備好,現在填入控件」。

在富客戶端應用程序中,用戶界面控件只創建一次,但底層數據在控件的生命週期內發生更改。如果你使用顯式數據綁定,每次數據更改時,你都會確定哪些控件需要更新,然後在每個控件上調用「DataBind」。這是一個維修頭痛。最好是知道綁定的唯一組件是控件本身。數據只能宣佈「我已更改」,並且控件可以自行更新。

相關問題