XAML中的名称空间错误
本文关键字:空间 错误 XAML | 更新日期: 2023-09-27 17:49:38
<common:LayoutAwarePage
x:Name="pageRoot"
x:Class="Liz.MainPage"
DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Liz"
xmlns:common="using:Liz.Common"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Page.Resources>
<DataTemplate x:Key="TempA">
<Border Background="Red">
<TextBlock Text="{Binding Title}" />
</Border>
</DataTemplate>
<DataTemplate x:Key="TempB">
<Border Background="Blue">
<TextBlock Text="{Binding Title}" />
</Border>
</DataTemplate>
<common:TemplateSelector x:Key="itemsTemplateSelector"
TemplateA="{StaticResource TempA}"
TemplateB="{StaticResource TempB}" />
我试图利用数据模板选择器,但在我的xml中,我一直在这行代码中得到一个错误:
错误1名称TemplateSelector在"using:Liz.Common"命名空间中不存在。
和TemplateSelector类在Common命名空间中定义如下:
namespace Liz.Common
{
public class TemplateSelector : DataTemplateSelector
{
int count = 0;
public DataTemplate TemplateA { get; set; }
public DataTemplate TemplateB { get; set; }
protected override DataTemplate SelectTemplateCore
(object item, DependencyObject container)
{
if (count % 2 == 0)
{
count++;
return TemplateA;
}
else
{
count++;
return TemplateB;
}
}
}
}
关于为什么我一直得到这个错误的任何想法?我甚至尝试在本地(Liz)名称空间中定义TemplateSelector,结果相同。注意:当使用common:时,智能下拉菜单会找到TemplateSelector名称,但我仍然会在从智能中选择它后得到错误。
上面的XAML没有任何问题。我创建了一个新项目,添加了类并插入了XAML代码段。XAML编辑器一开始报告了相同的错误,但是构建成功了,之后错误消失了。
这是结果项目供您检查。