0


Google アナリティクスを Silverlight 4 out of browser アプリケーションに統合しようとしています。次のように、XAML に Google アナリティクス コードを追加すると、次のようになります。

    <i:Interaction.Behaviors>
        <ga:GoogleAnalytics WebPropertyId="xxxxxxxxxxxxx"/>
    </i:Interaction.Behaviors>

「タイプ 'System.Windows.Interactivity.BehaviorCollection' のコレクションに値を追加すると、例外がスローされました」というエラーが表示され ます。

これに関してネットで多くのヘルプを見つけることができません。次のユーザー制御コードを指摘する人はほとんどいません。

xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"

現在、これには VS 2010 と Blend 4 を使用しています。
これを読んでくれてありがとう。この問題で私を助けることができれば、それは素晴らしいことです.

編集:

言及したように、私はここにデータを入れています:

私の App.xaml で

<Application   
  x:Class="SilverlightApp.slate.App"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:mwa="clr-namespace:Microsoft.WebAnalytics;assembly=Microsoft.WebAnalytics"
             xmlns:ga="clr-namespace:Google.WebAnalytics;assembly=Google.WebAnalytics">


    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="Assets/Styles.xaml"/>
                <ResourceDictionary Source="CustomControls.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>

    </Application.Resources>

    <Application.ApplicationLifetimeObjects>
        <mwa:WebAnalyticsService>
            <mwa:WebAnalyticsService.Services>
                <ga:GoogleAnalytics WebPropertyId="XXXXXXXXXXXXX" />
            </mwa:WebAnalyticsService.Services>
        </mwa:WebAnalyticsService>
    </Application.ApplicationLifetimeObjects>
</Application>

Grid の下の Main Page.XAML :

  <Button x:Name="btn_library_Icon" Margin="86,2,64,6" Style="{StaticResource menu_librarybuttonstyle}" FontFamily="/SilverlightApp.slate;component/Fonts/Fonts.zip#Segoe UI" FontSize="9.333" Click="btn_library_Icon_Click">
                <i:Interaction.Triggers>
                    <i:EventTrigger SourceName="btn_library_Icon" EventName="Click">
                        <mwab:TrackAction Category="Library Accessed"/>
                    </i:EventTrigger>
                </i:Interaction.Triggers>
                <Image x:Name="image" Source="Assets/icon_menu_library.png" Stretch="Fill" Width="23" Height="23"/>
           </Button>

これを実行すると、 「タイプ 'System.Windows.Interactivity.TriggerCollection' のコレクションに値を追加すると、例外がスローされました。」というエラーが表示されます。

ここで何か不足していますか?

4

2 に答える 2

0

私はまったく同じ問題を抱えていました.私のプロジェクトだけがSilverlight 5でした.

いろいろ調べた結果、プロジェクトが古いバージョンの Silverlight ツールキット、具体的にはバージョン 3 を参照していたことが判明しました。

SL5ツールキットを使用するように変更すると、問題はなくなりました。

エラーの本当の理由は説明しませんが、とにかく役立つことを願っています。

于 2013-11-29T13:34:50.560 に答える
0

ブラウザが不足している場合は、次のように app.xaml に何かを含める必要があるようです。

<Application.ApplicationLifetimeObjects><mwa:WebAnalyticsService/></Application.ApplicationLifetimeObjects>

また、どのバージョンを実行していますか? リリース 1.4.7 で修正された OOB 関連のバグがありました:
http://msaf.codeplex.com/discussions/228657

編集:私はこれを小さなテストアプリで試しましたが、うまくいきました。Google WebPropertyID を設定しようとすると例外がスローされますが、それはおそらく、自分で Google アナリティクス アカウントを持っていないためです。とにかく、ここに私の App.xaml の内容があります:

<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mwa="clr-namespace:Microsoft.WebAnalytics;assembly=Microsoft.WebAnalytics"
             xmlns:ga="clr-namespace:Google.WebAnalytics;assembly=Google.WebAnalytics"
             x:Class="SilverlightApplication22.App">

    <Application.ApplicationLifetimeObjects>
        <mwa:WebAnalyticsService>
            <mwa:WebAnalyticsService.Services>
                <ga:GoogleAnalytics WebPropertyId="UA-****-1" />
            </mwa:WebAnalyticsService.Services>
        </mwa:WebAnalyticsService>
    </Application.ApplicationLifetimeObjects>

    <Application.Resources>

    </Application.Resources>
</Application>

そして、これが私の参照リストのスクリーンショットです。Google.WebAnalytics の参照バージョンは 1.4.6.0 で、Microsoft.WebAnalytics は 1.4.3.0 です。私がインストールしたフレームワークのバージョンは、あなたと同じように 1.4.10.0 です。すべてのdllを正しいバージョン番号で更新していないと思います。

ここに画像の説明を入力

EDIT 2:あなたが投稿したボタンコードを試してみましたが、次のようにうまく動作します。リクエストが Fiddler の googleanalytics に送信されるのを確認できます。これはブラウザ外でもブラウザ内でも機能します。Microsoft.WebAnalytics.Behaviors、バージョン 1.4.6.0 への参照を追加しました。

<UserControl x:Class="SilverlightApplication22.MainPage"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
             xmlns:mwab="clr-namespace:Microsoft.WebAnalytics.Behaviors;assembly=Microsoft.WebAnalytics.Behaviors"
             mc:Ignorable="d"
             d:DesignHeight="300"
             d:DesignWidth="400">

    <Grid x:Name="LayoutRoot"
          Background="White">
        <i:Interaction.Triggers>
            <i:EventTrigger SourceName="LayoutRoot"
                            EventName="Loaded">
                <mwab:TrackAction Category="App Loaded" />
            </i:EventTrigger>
        </i:Interaction.Triggers>

        <Button x:Name="Btn01"
                Click="Btn01_Click">
            <i:Interaction.Triggers>
                <i:EventTrigger SourceName="Btn01"
                                EventName="Click">
                    <mwab:TrackAction Category="Library Accessed" />
                </i:EventTrigger>
            </i:Interaction.Triggers>
            Test
        </Button>


    </Grid>
</UserControl>
于 2011-07-19T09:38:54.067 に答える