Silverlight:绑定到跨视图模型共享的数据

时间:2013-04-20 11:49:04

标签: silverlight mvvm binding viewmodel caliburn.micro

我创建了一个名为JsData的类,并在App.xaml.cs中实例化它,以便我可以从多个viewmodel访问它。 JsData有几个ObservableCollections,一些配置属性和一些操纵从远程服务器自动提取数据的过程的方法。

现在问题来了。用最少的编码将全局数据绑定到我的视图是否方便?此外,我正在使用Caliburn.Micro。使用消息传递将PropertyChanged事件通知给viewmodel是否可行且适当?

1 个答案:

答案 0 :(得分:0)

我认为最好的方法是创建视图模型可以实现的服务。这样,需要数据的视图模型可以实现服务,并且服务更灵活,因为它可以在视图模型构造中注入。这样可以使您的视图模型更加分离并尊重mvvm模式。

我不会使用消息传递来通知更改,这会产生不必要的开销。您只需要让您的视图模型实现inotifypropertychanged然后在构造函数中获取服务然后将服务值传递给视图模型中用于引发属性更改事件的属性。

如果您需要帮助定义服务,请告诉我,我会发布样本