有一個Web服務。有關服務參考和MVVM模式的一些常規問題
- 它提供了類型
Zoo
和Animal
。 Zoo
有一個動物id和名字的字典。Animal
有屬性:Id
,Name
和(additional stuff)
。- 它有一個方法
GetZoo
返回一個動物園對象。 - 它有一個方法
GetAnimalStuffById
返回Animal
對象與Id
,Name
和(additional stuff)
。
所以這個想法是 - GetZoo
允許我獲取動物ID +名稱列表,然後GetAnimalStuffById
獲取完整的動物信息。
我在VS中爲該服務添加了一個「服務引用」,並且希望編寫一個MVVM應用程序。有些事情我不完全明白,需要被洗腦。
自動生成的類可以作爲我的模型嗎?
與示例無關,但無論如何:添加服務引用時應指定什麼「集合類型」?
ObservableCollection
是一種矯枉過正的行爲嗎?說,用戶轉到顯示完整動物信息的應用程序頁面。顯然,最初我有一個
AnimalViewModel
只有Id
和Name
值(取自GetZoo
)。當頁面被導航到時,我打電話給GetAnimalStuffById
並獲得一個包含所有數據的Animal
對象。接下來我應該做什麼?將我的視圖的DataContext替換爲從新的Animal
對象(A)創建的新的AnimalViewModel
,或者只是替換它中的值(B)?如果答案是(A),如何在所有視圖中替換DataContext?
如果答案是(B),會導致更新的是什麼?虛擬機是否應該訂閱一些奇特的經理關於獲取
Animal
更新的事件?還是有其他方法?INotifyPropertyChanged
在自動生成類中的用途是什麼?在我的情況下,它們總是從web服務中返回。微軟是否建議在某些情況下將它們用作ViewModel?
謝謝。
恩,非常感謝! –