有一个网络服务。
- 它提供类型
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 替换为从新对象AnimalViewModel
创建的新Animal
对象 (A),还是仅替换其中的值 (B)?如果答案是 (A),如何替换所有视图中的 DataContext?
如果答案是 (B),那么应该是什么导致了该更新?虚拟机是否应该订阅一些花哨的经理关于获取
Animal
更新的活动?还是有其他方法?INotifyPropertyChanged
自动生成的类的目的是什么?在我的情况下,它们总是从网络服务中返回。Microsoft 是否建议在某些情况下也将它们用作 ViewModels?
谢谢。