为什么找不到我的 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.
之前,无法找到我的视图模型
为什么 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.
之前,无法找到我的视图模型