0
<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 ​​名称“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,结果相同。注意:intellisence 下拉菜单在使用 common: 时发现 TemplateSelector 名称很好,但是从 intellisence 中选择它后仍然出现错误。

4

1 回答 1

0

上面的 XAML 没有任何问题。我创建了一个新项目,添加了类并插入了 XAML 片段。XAML 编辑器一开始也报同样的错误,但是构建成功,之后错误就消失了。

是生成的项目供您检查。

于 2012-12-28T05:47:34.720 回答