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>