2012-02-16 5 views
1

Windows PhoneのSilverlightでピボットアプリケーションにエラーが発生しました。Adcontrolピボットアイテムテンプレート内にInvalidCastExceptionがあります

問題を再現するには、ピボットアプリケーションの例を作成します。 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

まず、上記の例を 'AdUnitId =" Image480_80 "ApplicationId =" test_client "'に変更する必要があります。これは 'TestMode'値の標準セットです。第二に、任意のチャンスであなたはデバッグ - >例外 - >共通言語ランタイム例外 - >あなたのアプリでチェックマークがスローされていますか?ピボットページにも同じ問題がありました(ただし、コントロールはAdControlの代わりにラジオボタンでした)。私が一旦例外をスローすることを無効にすると(「最初のチャンスの例外が発生しました...」)、すべてがうまくいき、ピボットページが機能しました。 – Stan

答えて

1

ため

おかげで、あなたはあなたがPivotItemを使用する必要がありますあなたのピボットにビューを追加しようとした場合。私はほとんど肯定的です。なぜなら、エラーの理由は、ピボットコントロールのItemTemplateの内部にAdControlを配置しているからです。これを行うためのより良い方法があります。

代わりに80pxのピボットコントロールにボトムマージンを追加するだけです。次に、LayoutRootの内部にAdControlを追加して、Vertical AlignmentをBottomに設定します。

はわからない私は非常にため、ユーザーエクスペリエンスのこれをお勧めしていますが、ピボットコントロールの各ビューでAdControlをしたい場合は、単にあなたが必要PivotItemsを追加し、それぞれの場所AdControlでしまいます。

ボトムライン:PivotControlのItemTemplateにAdControlを配置しないでください。

それはそれを行う必要があります。

+1

ここにloyalpenguinと同意します。また、Ad SDKのガイドラインによれば、ページごとに新しいAdControlを用意する必要があります。ピボットは、どれだけのアイテムが「ページ」と見なされても、それを信じています。 – Stan

+0

あなたの答えをありがとう – Tim

関連する問題