为什么找不到我的ViewModel?

时间:2016-08-13 16:33:42

标签: c# data-binding uwp uwp-xaml

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

VS错误图像和文字:

enter image description here

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

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

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

3 个答案:

答案 0 :(得分:0)

您不能在xaml中使用select c.client_name, g.group_name from clients c join clientgroup cg on c.client_id = cg.client_id join groups g on cg.group_id = c.group_id ,而是使用using。我无法确定你的装配命名,但我的猜测是:

clr-namespace:

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

我将编译目标设置为x64后发生了。 在将编译重置为任何CPU之前,我的视图模型无法找到。