在透视项目模板内部时,Adcontrol InvalidCastException

时间:2012-02-16 15:50:12

标签: silverlight windows-phone-7

我在使用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。

没有控制,没问题。

我该如何解决?

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

如果您尝试向枢轴添加视图,则应使用PivotItem。我几乎肯定错误的原因是你把AdControl放在了Pivot Control的ItemTemplate里面。有更好的方法可以做到这一点。

相反,只需在80px的枢轴控制中添加下边距。然后在LayoutRoot中添加AdControl并将其垂直对齐设置为Bottom。

由于用户体验不确定我会强烈推荐这一点,但如果你想在数据透视控件的每个视图上使用AdControl,只需添加你需要的PivotItems,并在每个地方添加一个AdControl。

底线:不要将AdControl放在PivotControl的ItemTemplate中。

应该这样做。