C# 尝试从windows phone后台代码中删除轴心项目(带有标题模板)时引发异常

C# 尝试从windows phone后台代码中删除轴心项目(带有标题模板)时引发异常,c#,windows-phone-8,pivotitem,C#,Windows Phone 8,Pivotitem,在我的应用程序中,我需要动态添加和删除轴心项目。我成功地实现了它。但后来当我试图更改pivot items头模板时,相同的代码引发了异常 xaml代码如下所示 <phone:Pivot x:Name="HeadPivot" Title="SDPOnDemand"> <phone:PivotItem x:Name="RequestsPI"> <phone:PivotItem.Header>

在我的应用程序中,我需要动态添加和删除轴心项目。我成功地实现了它。但后来当我试图更改pivot items头模板时,相同的代码引发了异常

xaml代码如下所示

 <phone:Pivot x:Name="HeadPivot" Title="SDPOnDemand">
        <phone:PivotItem x:Name="RequestsPI">
            <phone:PivotItem.Header>
                <Grid>
                    <TextBlock Text="Requests" FontSize="{StaticResource PhoneFontSizeExtraLarge}" />
                </Grid>
            </phone:PivotItem.Header>
        </phone:PivotItem>

        <phone:PivotItem x:Name="FiltersPI">
            <phone:PivotItem.Header>
                <Grid>
                    <TextBlock Text="Filters" FontSize="{StaticResource PhoneFontSizeExtraLarge}" />
                </Grid>
            </phone:PivotItem.Header>

        </phone:PivotItem>

        <phone:PivotItem x:Name="SearchPI">
            <phone:PivotItem.Header>
                <Grid>
                    <TextBlock Text="Search Items" FontSize="{StaticResource PhoneFontSizeExtraLarge}" />
                </Grid>
            </phone:PivotItem.Header>

        </phone:PivotItem>


    </phone:Pivot>
在第一行中抛出以下异常

-       $exception  {System.ArgumentException: Value does not fall within the expected range.
如果我删除标题模板,它就可以正常工作。我能知道我做错了什么吗

这是不能做到的吗


谢谢。

我想默认的HeaderTemplate不希望在标题中包含UI元素

更改标题外观的方法是更改数据透视本身的HeaderTemplate属性,然后将适当的对象(很可能是简单的字符串)指定给数据透视项的header属性。大概是这样的:

    <phone:Pivot x:Name="HeadPivot" Title="SDPOnDemand">
        <phone:Pivot.HeaderTemplate>
            <DataTemplate>
                <Grid>
                    <TextBlock Text="{Binding}" FontSize="{StaticResource PhoneFontSizeExtraLarge}" />
                </Grid>
            </DataTemplate>
        </phone:Pivot.HeaderTemplate>

        <phone:PivotItem x:Name="RequestsPI" Header="Requests">
        </phone:PivotItem>

        <phone:PivotItem x:Name="FiltersPI" Header="Filters">
        </phone:PivotItem>

        <phone:PivotItem x:Name="SearchPI" Header="Search Items">
        </phone:PivotItem>
    </phone:Pivot>


Header=“Requests”
(等等)对您不起作用吗?我的意思是,你真的想更改模板还是仅仅更改值?我的主要问题是使用默认模板时标题的大小。我想缩小尺寸,这就是我使用这个的原因。谢谢,它现在很好用。尽管这看起来像是一个需要报告的错误。@请按我看到的唯一问题是,该错误并没有告诉您有关该问题的所有信息。否则,很少需要有不同外观的标题,因此将模板放在一个位置似乎是可以的。当然,如果愿意,可以在模板中放置ContentPresenter或ContentControl,然后可以为每个数据透视项设置所需的任何UI(就像在问题中的XAML中所做的那样):)
    <phone:Pivot x:Name="HeadPivot" Title="SDPOnDemand">
        <phone:Pivot.HeaderTemplate>
            <DataTemplate>
                <Grid>
                    <TextBlock Text="{Binding}" FontSize="{StaticResource PhoneFontSizeExtraLarge}" />
                </Grid>
            </DataTemplate>
        </phone:Pivot.HeaderTemplate>

        <phone:PivotItem x:Name="RequestsPI" Header="Requests">
        </phone:PivotItem>

        <phone:PivotItem x:Name="FiltersPI" Header="Filters">
        </phone:PivotItem>

        <phone:PivotItem x:Name="SearchPI" Header="Search Items">
        </phone:PivotItem>
    </phone:Pivot>