Имя не существует в пространстве имен

Я работаю над простым проектом UWP, используя привязку шаблона данных в VS 2015. Когда я пытаюсь указать тип для шаблона данных, я получаю сообщение об ошибке.

XAML:

<Page x:Name="RootPage"
x:Class="Adaptive_News_Layout.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:local="using:Adaptive_News_Layout"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" FontSize="22" >

 <SplitView x:Name="MySplitView" Grid.Row="1" DisplayMode="CompactOverlay" Background="LightGray" OpenPaneLength="200"  >
            <SplitView.Pane>
                <ListView x:Name="MyListview" ItemsSource="{x:Bind NavigationItems}"  >
                    <ListView.ItemTemplate>
                        <DataTemplate x:DataType="local:NavItem" >
                            <StackPanel Orientation="Horizontal">
                                <RelativePanel>
                                    <Button x:Name="Icon"  FontFamily="Segoe MDL2 Assets" Content="{x:Bind ButtonIcon}" Width="50" Height="50"/>
                                    <TextBlock x:Name="Section" Text="{x:Bind SectionTitle}" RelativePanel.RightOf="Icon" />
                                </RelativePanel>
                            </StackPanel>
                        </DataTemplate>
                    </ListView.ItemTemplate>

Это класс:

namespace Adaptive_News_Layout
{
    public class NavItem
    {
        public string ButtonIcon { get; set; }
        public string SectionTitle { get; set; }
    }
}

Ошибка гласит: Имя "NavItem" не существует в пространстве имен "using:Adaptive_News_Layout".


person Uncle Ben    schedule 05.07.2016    source источник
comment
как местный объявляется?   -  person AlexDrenea    schedule 05.07.2016
comment
Попробуйте собрать решение и посмотрите, есть ли ошибка сборки. И перезапустите VS, проверьте, сохраняется ли ошибка.   -  person Elvis Xia - MSFT    schedule 05.07.2016
comment
Такая же ситуация, у вас получилось?   -  person Matthew Optional Meehan    schedule 17.03.2017
comment
xmlns: local = использование: Adaptive_News_Layout   -  person Uncle Ben    schedule 18.03.2017
comment
Такого рода ошибки так раздражают и тратят так много времени ›‹   -  person visc    schedule 06.12.2017


Ответы (4)


Я понял, в чем проблема. Это глюк в Visual Studio 2015. После того, как вы добавите пространство имен в XAML, лучше всего скомпилировать/протестировать вашу программу, иначе вы получите эту проблему. Чтобы исправить это просто:

  1. Удалите рассматриваемую ссылку на пространство имен и все случаи использования этой ссылки.
  2. Выполните тестовый запуск/компилируйте свою программу.
  3. Добавьте ссылку на пространство имен обратно в открывающий тег страницы.
  4. Выполните еще один тестовый запуск/компилируйте свою программу.
Now when you use your new namespace reference the compiler won't glitch out.

person Uncle Ben    schedule 31.05.2017
comment
Все еще происходит в VS2019. В моем случае пространство имен существовало, но я не скомпилировал его, так как добавил в него новые классы. Удалил оскорбительный XAML, скомпилировал, повторно добавил его, и ошибка исчезла. - person Geordie; 11.12.2020

Что сработало для меня, так это указание сборки в ссылке на пространство имен, то есть: xmlns:the_namespace="clr-namespace:the_namespace" — выдает указанную выше ошибку. xmlns:the_namespace="clr-namespace:the_namespace;assembly=the_assembly" - работает хорошо.

person ury    schedule 10.01.2021

Я обнаружил, что непреднамеренно определил тот же объект в подпространстве имен. как только я избавился от второго определения, эта проблема исчезла

person Gavin    schedule 07.12.2018

Вы должны объявить «локальное» пространство имен в разделе, который можно найти в верхней части файла ypur Xaml. Вы увидите много пространств имен в формате xmlns:Name = "value" Добавьте свое пространство имен с именем = local и значением в качестве пространства имен.

person Raunaq Patel    schedule 05.07.2016
comment
Это тег открывающей страницы моей программы: здесь объявлено локальное пространство имен '‹Page x:Name=RootPage x:Class=Adaptive_News_Layout.MainPage xmlns=schemas.microsoft.com/winfx/2006/xaml/presentation xmlns:x=schemas.microsoft.com/winfx/2006/xaml xmlns:local=using:Adaptive_News_Layout xmlns:d=schemas.microsoft.com/expression/blend/2008 xmlns:mc=schemas.openxmlformats.org/markup-compatibility/2006 mc:Ignorable=d FontSize=22 ›' - person Uncle Ben; 06.07.2016
comment
Пятая строка гласит: xmlns:local=using:Adaptive_News_Layout. - person Uncle Ben; 18.03.2017