名称" ViewModelLocator"命名空间中不存在(通用应用程序)

时间:2015-01-12 14:59:52

标签: windows mvvm mvvm-light win-universal-app

我正在开发一个在Windows 8.1和Windows Phone 8.1上运行的通用应用程序。

我遇到了App.xaml文件标题中提到的错误。 App.xaml文件位于MyApp.Shared项目中,ViewModel文件夹也是如此。 但是,该错误仅发生在Windows 8.1应用程序中。 Windows Phone应用程序运行正常,这是非常奇怪的,因为它们运行完全相同的代码。

在Windows 8.1应用程序中,我无法使用ViewModelLocator及其属性,因此无法为任何页面设置DataContext。 (绑定无法解决,只要我尝试使用ViewModelLocator定义的DataContext打开页面,应用就会崩溃。)

Bellow是我的App.xaml文件

<Application 
x:Class="MyApp.App" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:local="using:MyApp">
<Application.Resources> 
    <ResourceDictionary >
        <!-- This is where the error is -->
        <vm:ViewModelLocator x:Key="Locator" xmlns:vm="using:MyApp.ViewModel" />
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/Resources/Colors.xaml"/>
            <ResourceDictionary Source="/Resources/Styles.xaml"/>
        </ResourceDictionary.MergedDictionaries>           
    </ResourceDictionary>       
</Application.Resources>

1 个答案:

答案 0 :(得分:1)

在Windows 项目上单击鼠标右键后,检查 ViewModelLocator ViewModel 类是否具有公共访问权限 - &GT; 清洁,最后构建