在我的应用中,我需要动态添加和删除枢轴项。我成功实现了它。但是后来当我尝试更改数据透视表项目标题模板时,相同的代码会抛出异常。
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>
我使用以下代码删除并添加数据透视项
HeadPivot.Items.Remove(FiltersPI);
HeadPivot.Items.Add(SearchPI);
第一行抛出以下异常
- $exception {System.ArgumentException: Value does not fall within the expected range.
如果我删除标题模板,它的工作正常。我可以知道我做错了吗?
这不能做到吗?
感谢。
答案 0 :(得分:1)
我想默认的HeaderTemplate不期望Header中的UI元素。
更改标头外观的方法是通过更改Pivot本身的HeaderTemplate属性,然后将适当的对象(很可能是一个简单的字符串)分配给PivotItem的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>