我开始探索MVVM灯,并开始设计我不同的viemModels。我浏览了很长时间才知道我在找什么,但是我找不到它:-(。每个视图模型应该由单个ViewModelLocator处理吗?
我有一个示例是基于一个MainViewModel,它是在ModelViewLocator中处理的。在大多数情况下,我们将有超过一个视图模型,所以应该全部的ViewModels在一个单一的ViewModelLocator文件中定义或做我必须有每个视图一个ViewModelLocator
换句话说,我需要得到这个: MainViewModel - > MainViewModelLocator PictureViewModel - > PictureViewModelLocator
好吧,但有一个问题: 让我说,我有3 viewModels,我创建ViewModel1,2和3 在ViewModelLocation中,我已创建相同的结构作为MainViewModel为了创建它的实例,并创建一个主要属性访问Models实例。
我发现的问题是,如果我的每个视图对应于每个viewModels被设置为自己的datacontext作为ViewModelLocator.ViewModelx,视图实例是在设计时创建的,它使我麻烦,如果在我的构造函数view我需要调用一个从WCF服务获取数据的外部类。它会产生一个“实例创建错误”。
另一方面,如果在每个视图中,我绑定然后不是从ViewModelLocator.ViewModelx,而是作为直接ViewModelx然后我没有得到该错误,并更好地工作。
那么什么是properway做和逻辑路径:
1 - 是否MainViewModel应该创建所有其他视图模型的? 2 - ViewModelLocator中的每个View都必须绑定到它自己的MainStatic propery吗? 3 - 每个视图是否创建自己的ViewModel实例?
我这样做的方式是,ViewModel构造函数创建期间从外部类返回服务数据的View仅在将其直接绑定到ViewModel时才起作用,这样做是否有困难?