我們是否必須爲所有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