0

在我的应用程序中,我需要动态添加和删除数据透视项目。我成功地实现了它。但后来当我尝试更改数据透视项目标题模板时,相同的代码抛出异常。

xml代码如下

 <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>

我使用以下代码删除和添加枢轴项目

HeadPivot.Items.Remove(FiltersPI);
HeadPivot.Items.Add(SearchPI);

第一行抛出以下异常

-       $exception  {System.ArgumentException: Value does not fall within the expected range.

如果我删除标题模板,它工作正常。我可以知道我做错了什么吗?

这是不能做的吗?

谢谢。

4

1 回答 1

1

我猜默认 HeaderTemplate 不期望 Header 中的 UI 元素。

更改标头外观的方法是更改​​ Pivot 本身的 HeaderTemplate 属性,然后将适当的对象(很可能是简单字符串)分配给 PivotItem(s) 的 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>
于 2014-06-09T09:58:37.287 回答