2009-08-11 146 views

回答

3

在Silverlight中做MVVM比在WPF中做得更困难,但我们已经做到了。是的,我们把异步服务调用放在ViewModel中。在我们的例子中,“模型”是通过Web服务调用来回发送的代理对象。不幸的是,这意味着你的一些功能在你的客户端ViewModel中,有些在服务器端。真的没有办法解决这个问题。

...是的,让Async Complete事件处理程序写入ViewModel的属性,并确保属性(或集合)实现INotifyPropertyChanged(或INotifyCollectionChanged)。如果您收到“模型”对象从Web服务后面,而那些对象不执行INotifyPropertyChanged自己,那么你应该考虑围绕这些包装视图模型对象了。这样,如果你对每个对象都有一个View,他们可以进行双向绑定。

1

我倾向于同意,这将导致数据修改服务呼叫应当由视图模型来处理。

1

我把我的电话给异步模型中的服务,并挂接到从我的视图模型事件当数据返回到模型会被解雇。

2

您有一个很好的示例来自Microsoft here。这有助于我理解MVVM和ASYNC调用。