0

2012 年 9 月 17 日更新:質問を修正し、レクリエーションの手順を追加しました。

WrapGrid スタイルの画像ギャラリーを ItemDetailPage に追加しようとしています。これまでのところ、これを達成するために見つけた唯一の解決策は、グループ スタイルを作成し、DataTemplate セレクターを使用することです。ページのすべての列にクラスを作成する必要があるため、詳細ページでこれを行うのはやり過ぎのようです。

以下に示すようにこれを解決しようとしましたが、GridView は受け入れられない ScrollViewer とは無関係にスクロールします。

VS でデフォルトの Grid アプリケーションを再作成するには、次のようにします。

このプロパティを SampleDataItem に追加します

// Add to SampleDataItem TODO: replace int with image url strings
private List<int> _subItems = null;
public List<int> SubItems
{
    get
    {
        if (_subItems == null)
        {
            _subItems = new List<int>();
            for (int i = 0; i < 50; i++)
                this._subItems.Add(i);
        }
        return this._subItems;
    }
    set { this.SetProperty(ref this._subItems, value); }
}

ItemDetailPage.xaml で、ScrollViewer の RichTextColumns を置き換えます。

 <!--Fixed column layout, replaces RichTextColumns from template-->    
  <Grid Grid.Row="1">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="800"/>
            <ColumnDefinition Width="1400"/>
        </Grid.ColumnDefinitions>
        <StackPanel>
            <TextBlock Text="{Binding Title}"/>
            <Image x:Name="image" MaxHeight="480" Margin="0,20,0,10" Stretch="Uniform" Source="{Binding Image}"/>                                     
        </StackPanel>
        <GridView ScrollViewer.HorizontalScrollMode="Disabled"  VerticalAlignment="Top" ItemsSource="{Binding SubItems}"  Grid.Column="1" ItemTemplate="{StaticResource GridViewDataTemplate1}" >
        </GridView>
    </Grid>

最後に、次の DataTemplate を追加します

<DataTemplate x:Key="GridViewDataTemplate1">
    <Grid Background="Yellow" Width="200" Height="200"/>
</DataTemplate>
4

1 に答える 1

0

これを実現するには、GridView の Horizo​​ntalScrollMode を次のように設定します。Disabled

<GridView ScrollViewer.HorizontalScrollMode="Disabled" />

ただし、ここで最善のアプローチについて考えることを強くお勧めします。GridViews がそれぞれに関連していない場合は、別のページに表示します。それらが関連している場合は、1 つの GridView をグループ化します。DataTemplateSelectorを使用して、グループの項目を異なるスタイルにすることができます。

于 2012-09-17T06:26:22.700 に答える