参考我的问题如何绑定来自多个模型的Bing Pushpin?,我对这方面还不是很熟悉,虽然我在网上搜索了很多方法,但MVVM的方法似乎有太多不同的方法,再加上WP7,我有点困惑。
现在,我正在努力找出共享ViewModel之间数据的最佳方式,甚至不确定这是否是最佳方法。
我的模型:PeopleModel,BuildingModel 我的ViewModel:PeopleViewModel,BuildingViewModel(其中包含模型的Observable集合)
目前,一个定时器用于从Web服务更新列表。由于它是静态的,因此可以在应用程序的生命周期内进行更新。但我不确定这是否是最明智的方法,但我需要一些后台同步以满足要求。
People和Building包含一个位置,但没有关于应在pushpin上显示哪个图像的任何信息。所以我想如果我有一个包含与ViewModels某种方式链接的MapViewModel的地图视图,但我不知道怎么做。
我看过MVVMLight,似乎可以在启动时注册ViewModels,因此可以添加其他ViewModels的链接,而不用担心它们的生命周期?
但是,考虑到在Models中有额外的信息,该Map不感兴趣,我想是否最好拥有一个自我包含的MapViewModel,其中包含某种类型的自定义pushpins列表(如PeoplePushpins,BuildingPushpins)。如果我采用这种方法,我想知道如何从其他Models中更新MapViewModel。
我的意思是PersonViewModel中正在运行的定时器检测到列表中的更改,因此更新其自己的列表。我需要向Map发送通知,告知其有更新,然后将自己从其中更新。
现在,我正在努力找出共享ViewModel之间数据的最佳方式,甚至不确定这是否是最佳方法。
我的模型:PeopleModel,BuildingModel 我的ViewModel:PeopleViewModel,BuildingViewModel(其中包含模型的Observable集合)
目前,一个定时器用于从Web服务更新列表。由于它是静态的,因此可以在应用程序的生命周期内进行更新。但我不确定这是否是最明智的方法,但我需要一些后台同步以满足要求。
People和Building包含一个位置,但没有关于应在pushpin上显示哪个图像的任何信息。所以我想如果我有一个包含与ViewModels某种方式链接的MapViewModel的地图视图,但我不知道怎么做。
我看过MVVMLight,似乎可以在启动时注册ViewModels,因此可以添加其他ViewModels的链接,而不用担心它们的生命周期?
但是,考虑到在Models中有额外的信息,该Map不感兴趣,我想是否最好拥有一个自我包含的MapViewModel,其中包含某种类型的自定义pushpins列表(如PeoplePushpins,BuildingPushpins)。如果我采用这种方法,我想知道如何从其他Models中更新MapViewModel。
我的意思是PersonViewModel中正在运行的定时器检测到列表中的更改,因此更新其自己的列表。我需要向Map发送通知,告知其有更新,然后将自己从其中更新。