名称空间中不存在名称“ViewModelLocator”

时间:2016-07-13 20:12:36

标签: c# windows-phone-8.1 mvvm-light visual-studio-2015

我正在使用MVVM Light Toolkit编写一些培训Windows项目。将MVVM Light引用添加到项目的位置,以下资源自动添加到App.xml

  <Application x:Class="TestApp.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:TestApp" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" d1p1:Ignorable="d" xmlns:d1p1="http://schemas.openxmlformats.org/markup-compatibility/2006">
  <Application.Resources>
    <ResourceDictionary>
      <vm:ViewModelLocator x:Key="Locator" d:IsDataSource="True" xmlns:vm="using:TestApp.ViewModel" />
    </ResourceDictionary>
  </Application.Resources>
</Application>

不幸的是,它不起作用,即由于这些错误而无法构建/编译项目:

  

块引用   严重性代码描述项目文件行抑制状态   错误未知类型XML命名空间中的'ViewModelLocator'使用:TestApp.ViewModel'TestApp.Windows C:\ Users \ Krzysztof \ documents \ visual studio 2015 \ Projects \ TestApp \ TestApp \ TestApp.Shared \ App.xaml 4
  错误名称“ViewModelLocator”在命名空间“using:TestApp.ViewModel”中不存在。 TestApp.Windows C:\ Users \ Krzysztof \ documents \ visual studio 2015 \ Projects \ TestApp \ TestApp \ TestApp.Shared \ App.xaml 4

简而言之,我无法将ViewModelLocator添加到App.xml资源。

我找到了解决此问题的几种常见解决方案(例如:更改解决方案平台,清理,重建,重新启动Visual Studio等),但它们没有任何改变。创建一个新项目也无济于事。

还有其他方法可以让它发挥作用吗?我使用Visual Studio Community 2015。

3 个答案:

答案 0 :(得分:1)

我也遇到了同样的问题,经过谷歌搜索后,终于解决了。所以首先检查你的项目构建平台,右键单击你的项目,然后转到属性并检查构建平台(x64,x84)选项是否存在。在确认之后转到工具栏(项目窗口屏幕)并单击内置,内置查找配置管理器并检查活动解决方案平台选项。配置管理器和您构建的项目是相同的。如果没有,那么改变每个平台并检查。我希望这会帮助你..

答案 1 :(得分:0)

在项目属性中,只需选择任何CPU 到平台目标

答案 2 :(得分:0)

注释掉viewmodel.xaml和app.xaml以及rebuild的自动添加部分(可能没有错误)。然后取消注释app.xaml - 它应该看起来很好,如果不抱歉,不能再帮助你了。如果是这样,那么将datacontext添加到您的视图中。

我遇到了这个问题,但对我而言,似乎更多的是app.xaml试图访问完全构建的程序集引用并且可视化工作室解释程序不够用的问题。