1

私が持っているグリッドビューにadcontrolを追加するにはどうすればよいですか。(商品ページのテンプレート)

これは私が使用するデータ テンプレートです。

    <DataTemplate x:Key="Normal">
    <Grid HorizontalAlignment="Left" Width="180" Height="180">
        <Border Background="{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}">
            <Image Source="{Binding Image}" Stretch="UniformToFill" AutomationProperties.Name="{Binding Title}"/>
        </Border>
        <StackPanel VerticalAlignment="Bottom" Background="{StaticResource ListViewItemOverlayBackgroundThemeBrush}">
            <TextBlock Text="{Binding Title}" Foreground="{StaticResource ListViewItemOverlayForegroundThemeBrush}" Style="{StaticResource TitleTextStyle}"
                       Height="40"
                       Margin="15,0,15,0"
                       TextAlignment="Center" />
            <TextBlock Text="{Binding Subtitle}" Foreground="{StaticResource ListViewItemOverlaySecondaryForegroundThemeBrush}" Style="{StaticResource CaptionTextStyle}" TextWrapping="NoWrap" Margin="15,0,15,10"
                       TextAlignment="Center" />
        </StackPanel>
    </Grid>
</DataTemplate>

それを使ってアイテムを表示していますが、広告も表示したいと考えています。30 項目、次に広告、30 項目、そして広告が表示されるように、それに adcontrol を実装するにはどうすればよいですか。(アイテムを追加するコードはありますが、広告を追加する方法がわかりません)。

編集 さて、私はすべきことをすべてやりましたが、名前空間が見つからないというエラーが表示されます。

エラーは次のとおりです。

The name "MyDataTemplateSelector" does not exist in the namespace "using:MyDataSelector"

メイン ページの XAML コードでは、次のようにしました。

xmlns:selectornamespace="using:MyDataSelector"

ここに私のページのリソースがあります:

<Page.Resources>
    <!-- Collection of items displayed by this page -->
        <CollectionViewSource
        x:Name="itemsViewSource"
        Source="{Binding Items}"/>
    <!-- TODO: Delete this line if the key AppName is declared in App.xaml -->
    <x:String x:Key="AppName">Sample App</x:String>

    <selectornamespace:MyDataTemplateSelector x:Key="Selector" AdTemplate="{StaticResource Ad}" NormalTemplate="{StaticResource Normal}"></selectornamespace:MyDataTemplateSelector>
</Page.Resources>

これが MyDataSelector クラスです。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;

namespace MyDataSelector
{
    private class MyDataTemplateSelector : DataTemplateSelector
    {
        public DataTemplate NormalTemplate { get; set; }
        public DataTemplate AdTemplate{ get; set; }
        protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
        {
            if (item is TestApp.Mainpage.NormalData)
                return NormalTemplate
            if (item is TestApp.Mainpage.AdData)
                return AdTemplate;

            return SelectTemplateCore(item, container);
        }
    }
}

NormalTemplate と AdTemplate は StandardStyles.xaml にあります

どんな助けでも本当に感謝します! 感謝とメリークリスマス

4

1 に答える 1

1

datatemplate selectorを使用し、そのアイテムがダミーの「Ad」アイテムであるかどうかを検出し、標準テンプレートの代わりに追加データ テンプレートを表示します。

ただし、これを機能させるには、データソースに 30 番目のアイテムごとにダミーアイテムを挿入する必要があります

于 2012-12-22T21:53:17.650 に答える