为什么找不到我的 ViewModel?

Why is my ViewModel not found?

为什么 VS 找不到我的文件?

VS 错误图文:

严重性代码说明项目文件行抑制状态 错误 CS0246 找不到类型或命名空间名称 'AudioFile'(是否缺少 using 指令或程序集引用?)重新订购 C:\Users\kloud\Documents\Visual Studio 2015\Projects\reOrder\reOrder\ReorderPage.xaml.cs 27 活跃

我重新创建了该项目以查看 Visual Studio 是否在做我无法做到的事情 see/understand 并广泛检查了正在运行的代码(正确找到项目并绑定)以查看差异在哪里是。不过我找不到任何线索。

编辑:我在 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>

AudioItem 模型 (跳过使用)

namespace reOrder.Models
{
    public class AudioItem
    {
        public string Path { get; set; }

        public string Name { get; set; }

        public int Duration { get; set; }
    }
}

您在 xaml 中不使用 using,您使用 clr-namespace:。我不能确定你给程序集起的名字,但我的猜测是:

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

即使在重建 solution.One 解决方法后,我也遇到了同样的问题,我所做的是转到文件资源管理器中的 .csproj 文件,现在在项目组标签下编辑添加:

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

保存并关闭它然后重建它,现在它将检测视图模型。

它发生在我将编译目标设置为x64之后。 在将编译重置为 Any CPU.

之前,无法找到我的视图模型