2009-08-11 81 views

回答

3

在Silverlight中做MVVM比在WPF中做得更困難,但我們已經做到了。是的,我們把異步服務調用放在ViewModel中。在我們的例子中,「模型」是通過Web服務調用來回發送的代理對象。不幸的是,這意味着你的一些功能在你的客戶端ViewModel中,有些在服務器端。真的沒有辦法解決這個問題。

...是的,讓Async Complete事件處理程序寫入ViewModel的屬性,並確保屬性(或集合)實現INotifyPropertyChanged(或INotifyCollectionChanged)。如果您收到「模型」對象從Web服務後面,而那些對象不執行INotifyPropertyChanged自己,那麼你應該考慮圍繞這些包裝視圖模型對象了。這樣,如果你對每個對象都有一個View,他們可以進行雙向綁定。

1

我傾向於同意,這將導致數據修改服務呼叫應當由視圖模型來處理。

1

我把我的電話給異步模型中的服務,並掛接到從我的視圖模型事件當數據返回到模型會被解僱。

2

您有一個很好的示例來自Microsoft here。這有助於我理解MVVM和ASYNC調用。