命名空间中不存在名称
Name does not exist in the namespace
我正在 VS 2015 中使用数据模板绑定开发一个简单的 UWP 项目。每当我尝试指定数据模板的类型时,我都会收到错误消息。
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>
这是class:
namespace Adaptive_News_Layout
{
public class NavItem
{
public string ButtonIcon { get; set; }
public string SectionTitle { get; set; }
}
}
错误显示:名称空间 "NavItem" 中不存在 "using:Adaptive_News_Layout"
您必须在 ypur Xaml 文件顶部的部分中声明 'local' 名称space。
您会看到许多名称space,格式为xmlns:Name ="value"
添加您的姓名 space,Name =local,Value 作为您的姓名space
我明白问题出在哪里了。这是 Visual Studio 2015 中的一个小故障。在 XAML 中添加命名空间后,最好编译/测试 运行 你的程序,否则你会遇到这个问题。只需修复它:
- 删除有问题的名称空间引用以及该引用的所有用法。
- 执行测试运行/编译你的程序。
- 将名称空间引用添加回起始页面标记
- 执行另一个测试运行/编译你的程序。
现在,当您使用新的名称空间引用时,编译器不会出现故障。
我发现我无意中在子命名空间中定义了同一个对象。一旦我摆脱了第二个定义,这个问题就消失了
对我有用的是在命名空间引用中指定程序集,即:
xmlns:the_namespace="clr-namespace:the_namespace"
- 产生上述错误。
xmlns:the_namespace="clr-namespace:the_namespace;assembly=the_assembly"
- 效果很好。
我正在 VS 2015 中使用数据模板绑定开发一个简单的 UWP 项目。每当我尝试指定数据模板的类型时,我都会收到错误消息。
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>
这是class:
namespace Adaptive_News_Layout
{
public class NavItem
{
public string ButtonIcon { get; set; }
public string SectionTitle { get; set; }
}
}
错误显示:名称空间 "NavItem" 中不存在 "using:Adaptive_News_Layout"
您必须在 ypur Xaml 文件顶部的部分中声明 'local' 名称space。 您会看到许多名称space,格式为xmlns:Name ="value" 添加您的姓名 space,Name =local,Value 作为您的姓名space
我明白问题出在哪里了。这是 Visual Studio 2015 中的一个小故障。在 XAML 中添加命名空间后,最好编译/测试 运行 你的程序,否则你会遇到这个问题。只需修复它:
- 删除有问题的名称空间引用以及该引用的所有用法。
- 执行测试运行/编译你的程序。
- 将名称空间引用添加回起始页面标记
- 执行另一个测试运行/编译你的程序。
我发现我无意中在子命名空间中定义了同一个对象。一旦我摆脱了第二个定义,这个问题就消失了
对我有用的是在命名空间引用中指定程序集,即:
xmlns:the_namespace="clr-namespace:the_namespace"
- 产生上述错误。
xmlns:the_namespace="clr-namespace:the_namespace;assembly=the_assembly"
- 效果很好。