我在使用Silverlight for Windows Phone上的数据透视应用程序时出错。
要重现此问题,请创建“数据透视表应用程序”示例。将xaml更改为:
<Grid x:Name="LayoutRoot" Background="Transparent">
<!--Pivot Control-->
<controls:Pivot Title="MY APPLICATION" ItemsSource="{Binding Items}">
<controls:Pivot.HeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding LineOne}" />
</DataTemplate>
</controls:Pivot.HeaderTemplate>
<controls:Pivot.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding LineTwo}" />
<advertising:AdControl Grid.Row="2" Grid.ColumnSpan="2" Height="80" Width="480" VerticalAlignment="Top" AdUnitId="10000000" ApplicationId="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaa" />
</StackPanel>
</DataTemplate>
</controls:Pivot.ItemTemplate>
</controls:Pivot>
</Grid>
这是一个数据透视项目模板中的广告控件。
不要忘记添加对Microsoft.Advertising.Mobile.UI的引用并声明名称空间:
xmlns:advertising="clr-namespace:Microsoft.Advertising.Mobile.UI;assembly=Microsoft.Advertising.Mobile.UI"
然后,当您运行手机应用程序(在模拟器上)时,您有一个InvalidCastException。
没有控制,没问题。
我该如何解决?
感谢您的帮助
答案 0 :(得分:1)
如果您尝试向枢轴添加视图,则应使用PivotItem。我几乎肯定错误的原因是你把AdControl放在了Pivot Control的ItemTemplate里面。有更好的方法可以做到这一点。
相反,只需在80px的枢轴控制中添加下边距。然后在LayoutRoot中添加AdControl并将其垂直对齐设置为Bottom。
由于用户体验不确定我会强烈推荐这一点,但如果你想在数据透视控件的每个视图上使用AdControl,只需添加你需要的PivotItems,并在每个地方添加一个AdControl。
底线:不要将AdControl放在PivotControl的ItemTemplate中。
应该这样做。