2016-08-13 5 views
2

Почему VS не может найти мой файл?Почему мой ViewModel не найден?

VS Ошибка изображения и текста:

enter image description here

Тяжесть Code Line Описание проекта файла Подавление Государственный CS0246 Ошибка Тип или пространство имен имя «AudioFile» не может быть найден (Вы не нашли с помощью директива или ссылка на сборку?) reOrder C: \ Users \ kloud \ Documents \ Visual Studio 2015 \ Projects \ reOrder \ reOrder \ ReorderPage.xaml.cs 27 Active

Я воссоздал проект, чтобы увидеть, делает ли Visual Studio сомнение что я не мог видеть/понимать и тщательно проверять код, который работает (правильно находит элемент и привязывает), чтобы увидеть, где различия. Однако я не мог найти никаких подсказок.

Редактировать: Я использую Visual Studio 2015 Community Edition в Windows 10 Anniversary Update. Кроме того, в предыдущих проектах у VS не было проблем с поиском и привязкой к модели.

Полный код ниже.

Reorder Page

<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 Модель (пропущено usings)

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

     public string Name { get; set; } 

     public int Duration { get; set; } 
    } 
} 

ответ

0

У меня была та же проблема, даже после того, как восстановление solution.One обходной путь я сделал Перейти к файлу .csproj в проводнике файлов и теперь редактировать под ItemGroup тега добавить следующее:

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

Сохранить и закрыть его, а затем восстановить его, и теперь он обнаружит ViewModel.

+0

Спасибо, что сделал эту работу! Но знаете ли вы, почему это могло произойти? Я имею в виду, что даже новые проекты имеют эту проблему. Кроме того, где вы нашли это решение? – NomadHorse2

+0

Я сам решил это, сравнивая различные файлы .csproj других приложений uwp, в которых он обнаруживал модель просмотра, а затем нашел это сходство и решил это. Но так как я просто новичок, я не знаю, почему это происходит :) – Uwpbeginner

1

Вы не используете using в XAML, вы используете clr-namespace:. Я не могу быть уверен, что вы назвали ваш узел, но мое предположение:

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

текст ошибки изменения в нечто подобное: Название «AudioItem» не существует в пространстве имен «CLR-пространства имен: REORDER; сборка = REORDER» редактирования: Код хорошо с 'using', и этот тип работы решения для меня работали в прошлом. Я работаю над стилем кода учебного шаблона. – NomadHorse2

+0

Во-первых, правильно ли это имя сборки? Я сказал, что это просто догадка. Во-вторых, [смотрите этот вопрос SO] (http://stackoverflow.com/questions/16406038/xaml-clr-namespace-using-incompatibility), возможно, вы ожидаете, что xaml будет одинаковым во всех средах? – Crowcoder

+0

Я проверил, это reOrder, я ничего не менял в настройках проекта, и я нахожусь в Windows 10 AU для Windows 10. Как синтаксис может быть проблемой? Я упомянул, что проекты до этого правильно нашли тип и привязаны к нему. – NomadHorse2

Смежные вопросы