XAML中的命名空间错误

时间:2012-12-27 22:06:50

标签: c# xaml windows-runtime winrt-xaml windows-store-apps

<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}" />

我正在尝试使用数据模板选择器,但在我的xmal中,我在这行代码中不断收到错误:     

错误1名称&#34; TemplateSelector&#34;命名空间中不存在&#34;使用:Liz.Common&#34;。

我的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,结果相同。 注意:intellisence下拉列表在使用common:时发现TemplateSelector名称就好了,但是从intellisence中选择它后我仍然会收到错误。

1 个答案:

答案 0 :(得分:0)

上述XAML没有任何问题。我创建了一个新项目,添加了类并插入了XAML片段。 XAML编辑器最初报告了相同的错误,但构建成功,之后错误消失。

Here是您要检查的结果项目。