我们是否必须为所有ViewModel创建不同ViewModel的唯一ViewModelLocator或唯一一个ViewModelLocator。因为当我尝试通过为所有ViewModel设置属性来使用唯一一个ViewModelLocator时 - 它在Cache中给出了Error-Type Not Found。所以我不能使用该viewmodel,除非我将该viewModel设置为默认值。任何人都可以请帮助我确定我要去哪里错?我们是否需要为每个ViewModel创建induvidual ViewModelLocators?
回答
你只需要一个ViewModelLocator,需要类似这样的设置:
你应该有一个ViewModelLocator.cs。
有它初始化在你的App.xaml:
<Application.Resources>
<ResourceDictionary>
<vm:ViewModelLocator x:Key="Locator" d:IsDataSource="True" />
</ResourceDictionary>
</Application.Resources>
而且你的观点,并应在每一页的根DataContext的呼唤你的ViewModelLocator:
<phone:PhoneApplicationPage DataContext="{Binding MenuViewModel, Source={StaticResource Locator}}" .../>
我已经设置它像这样 –
我找到了解决方案 - >每次我使用mvvmlocator片段时,它会生成一个新的静态构造函数,我用它来删除并最终遇到以上错误,因为我没有注册SimpleIoc的ViewModel属性。我在默认构造函数中完成了,问题是已解决。 –
我找到了更好的解决方案和解决MVVM-Light ViewModelLocator的使用是使用MEF导出。 下面是Johnpapa的一个很好的链接...清洁和简单的解决方案。 http://johnpapa.net/simple-viewmodel-locator-for-mvvm-the-patients-have-left-the-asylum
当我像使用MVVM Toolkit一样在Windows 8商店应用程序中导致此错误,并且在我的viewmodel的构造函数中使用了SimpleIoc容器解析类型。这导致设计时体验显示您描述的错误。
我通过检查,如果我是在设计时和不执行代码,如果我是
- 1. 我们是否需要为每个图像创建一个HttpHandler(ashx)?
- 2. 我是否需要为每个页面创建路线? (node.js中)
- 3. 我们是否需要为gcnew创建指针验证
- 4. Zend缓存我们是否需要每次都创建一个新对象?
- 5. 我是否需要观察每个创建的NSManagedObjectContext的NSManagedObjectContextDidSaveNotification?
- 6. 我是否需要在此测试中创建每个对象?
- 7. 我是否需要为每个测试重新创建我的驱动程序?
- 8. 我们是否需要ezpublish_legacy?
- 9. 我是否需要为每个游戏级别创建一个新的活动?
- 10. 我是否需要为每个请求创建一个新的Struts Action类?
- 11. 我是否需要为EF中的每个表创建一个类
- 12. 我是否需要为C++中的每个新建使用delete?
- 13. 是我需要为每个Tabbar创建UINavigationController?
- 14. 我是否需要为每个线程创建新的Callable对象?
- 15. 我是否需要为每个UIVIew创建变量并链接IBOutlet?
- 16. 我是否需要为每个iOS报亭问题创建单独的IAP?
- 17. 我们是否需要每个子网的接口路由器?
- 18. 我们是否需要每个源目录中的sconscript文件
- 19. 我们是否需要在新的注释器中创建process()?
- 20. 我们是否需要为每个子例程创建一个错误处理程序?
- 21. 我是否需要为UITextField创建一个控制器?
- 22. 我是否需要为has_many:through关联创建一个关联表?
- 23. 当我们创建表时,我们是否需要指定关系的基数?
- 24. 在这种情况下,我是否需要每次创建DocumentBuilderFactory?
- 25. WPF/MVVM - 我们应该为每个ViewModel创建一个不同的类吗?
- 26. android-我们是否需要每个SDK平台的sdk构建工具?
- 27. 如果我们需要支持多个平台,我们是否需要restclient
- 28. 是真的,如果我创建一个ViewModel我需要在MVVM模式中为它创建模型?
- 29. C#我需要为每个患者创建一个新表格
- 30. 我是否需要为我的关系表创建代理键?
为了帮助您,我们需要看到至少代码视图模型定位器解决它。然而,从你写的内容来看,我假设你使用了某种IoC容器,并且你正在寻找的类型不在这个容器中......但这只是一个非常疯狂的猜测! – AxelEckenberger