2011-06-24 50 views

回答

2

如果基礎數據(例如,未實現IPropertyChange的Plain類)更改,ViewModel如何得到通知?

它不能,必須有一個機制來執行通知。最可能的原因是在應用的一個區域(或模塊)中使用的POCO也在另一個區域(即鬆散耦合的主 - 細節情況)中使用。如果您像這樣「共享」POCO的同一個實例,那麼您不可能還沒有在其中實施更改通知。如果你已經實現了更改通知,那麼應用程序的一個模塊中的更改將自動顯示給其他模塊(它們都在查看同一個對象),並且監視該更改通知的任何內容(如綁定子系統)都會執行它的事情,並採取變化。

如果您有兩個單獨的相同數據實例並且一個被更新,另一個不會知道它。當您的虛擬機通過模型請求數據時,也會發生這種情況,並且模型將從斷開連接的數據源(如數據庫或Web服務)中檢索數據。您不知道底層數據何時發生更改,您需要再次實施更改通知系統。您也可以採取另一種措施 - 讓用戶更改數據,然後在保存用戶的更改之前重新抓取數據,並且如果用戶在工作時底層數據已更改,則可以通知用戶並採取措施適當的行動(或讓用戶選擇合適的事情)。

這是回答您的問題嗎?或者你是否在意詳細說明你想知道的內容?

相關問題