C# 为什么找不到我的ViewModel?

C# 为什么找不到我的ViewModel?,c#,data-binding,uwp,uwp-xaml,C#,Data Binding,Uwp,Uwp Xaml,为什么VS找不到我的文件 VS错误图像和文本: 严重性代码说明项目文件行抑制状态 错误CS0246找不到类型或命名空间名称“AudioFile”(是否缺少using指令或程序集引用?) 我重新创建了该项目,以查看VisualStudio是否正在做一些我看不到/无法理解的事情,并使用正在工作的代码(正确地查找项并绑定)进行了广泛检查,以查看差异所在。但是我找不到任何线索 编辑:我正在Windows 10周年更新上使用Visual Studio 2015社区版。此外,在以前的项目中,VS在查找和绑

为什么VS找不到我的文件

VS错误图像和文本:

严重性代码说明项目文件行抑制状态 错误CS0246找不到类型或命名空间名称“AudioFile”(是否缺少using指令或程序集引用?)

我重新创建了该项目,以查看VisualStudio是否正在做一些我看不到/无法理解的事情,并使用正在工作的代码(正确地查找项并绑定)进行了广泛检查,以查看差异所在。但是我找不到任何线索

编辑:我正在Windows 10周年更新上使用Visual Studio 2015社区版。此外,在以前的项目中,VS在查找和绑定到模型方面没有问题

完整代码如下

重新排序页面

<Page
    x:Class="reOrder.ReorderPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:reOrder"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:viewModels="using:reOrder.Models"
    mc:Ignorable="d">

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <Grid.RowDefinitions>
            <RowDefinition Height="auto"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="auto"/>
        </Grid.RowDefinitions>

        <ListView Grid.Row="1"
                  ItemsSource="{x:Bind AudioFiles}">
            <ListView.ItemTemplate>
                <DataTemplate x:DataType="viewModels:AudioItem">
                    <StackPanel>
                        <TextBlock Text="{x:Bind Name}"/>
                    </StackPanel>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </Grid>
</Page>

在xaml中不使用
using
,而是使用
clr命名空间:
。我无法确定您将程序集命名为什么,但我的猜测是:

xmlns:viewModels="clr-namespace:reOrder;assembly=reOrder"

即使在重建解决方案之后,我也遇到了同样的问题。我所做的一个解决方法是在文件资源管理器中转到.csproj文件,现在在itemgroup标记下编辑添加以下内容:

<Compile Include="ViewModels\AudioItemModel .cs">
  <DependentUpon>Reorder.xaml</DependentUpon>
</Compile>

Reorder.xaml

保存并关闭它,然后重建它,现在它将检测viewmodel。

这是在我将compile target设置为x64之后发生的。
在我将compile重置为任何CPU之前,无法找到我的视图模型。

错误文本更改为类似的内容:名称“AudioItem”不存在于名称空间“clr namespace:reOrder;assembly=reOrder”编辑:代码可以使用
使用
,并且这种类型的解决方案在过去对我有效。我正在编写一个教程模板样式的代码。首先,程序集名称正确吗?我说这只是猜测。第二,也许您希望xaml在所有环境中都是一样的?我检查过了,它是重新排序的,我没有更改项目设置中的任何内容,我正在使用Windows 10 AU building for Windows 10。语法怎么会有问题?我提到在此之前的项目正确地找到了类型并绑定到它。谢谢,这就完成了工作!但是你知道为什么会发生这种事吗?我的意思是,即使是新项目也有这个问题。还有,你是从哪里找到这个解决方案的?我自己通过比较其他uwp应用程序的各种.csproj文件解决了这个问题,在这些应用程序中,它检测到了viewmodel,然后发现了这种相似性并解决了它。但由于我只是一个初学者,我不知道为什么会发生这种情况:)
<Compile Include="ViewModels\AudioItemModel .cs">
  <DependentUpon>Reorder.xaml</DependentUpon>
</Compile>