簡単にするために、次の項目を持つWindows 8用のac#Windowsストアプロジェクトがあるとしましょう。
- GridView(PlatformsGrid)
- リスト«PlatformSearchResult»(allPlatforms)
- standardstyles.xamlのDataTemplate(PlatformDataTemplate)
allPlatformsは、オンラインAPIから入力された「PlatformSearchResult」オブジェクトのコレクションであり、次の3つのプロパティがあります。
- ID
- 名前
- エイリアス
allPlatformsコレクションに存在する各オブジェクトのグリッドビューに新しいアイテムを追加できますが、アイテムは空白であり、オブジェクトのデータが表示されません。
現在のコードの簡単な要約は次のようになります。
XAMLマークアップ:
<!-- Platforms Content -->
<GridView x:Name="PlatformsGrid" Grid.Row="1"
CanReorderItems="True" CanDragItems="True"
ItemTemplate="{StaticResource PlatformDataTemplate}" >
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<WrapGrid MaximumRowsOrColumns="2"
VerticalChildrenAlignment="Top" HorizontalChildrenAlignment="Center" />
</ItemsPanelTemplate>
</GridView.ItemsPanel>
</GridView>
データテンプレート
<!-- Platform Item Template -->
<DataTemplate x:Key="PlatformDataTemplate">
<Grid Background="#FF939598" Height="250" Width="250">
<Image Source="/SampleImage.png" Stretch="UniformToFill"/>
<StackPanel Orientation="Vertical" Background="#CC000000"
Height="90" VerticalAlignment="Bottom">
<TextBlock Text="{Binding Name}"
Margin="10,3,0,0" Width="242" Height="62"
TextTrimming="WordEllipsis" TextWrapping="Wrap" HorizontalAlignment="Left"/>
<TextBlock Text="{Binding Alias}"
Margin="10,2,0,0" Width="186" Height="14"
TextTrimming="WordEllipsis" HorizontalAlignment="Left" FontSize="9" Opacity="0.49"/>
</StackPanel>
</Grid>
</DataTemplate>
制御機能
private async void FetchItemInfo_Loaded(object sender, RoutedEventArgs e)
{
// Get List of Top Games
List<PlatformSearchResult> allPlatforms = new List<PlatformSearchResult>();
allPlatforms = await GamesDB.GetPlatforms();
// Dynamically Create Platform Tiles
foreach (PlatformSearchResult platform in allPlatforms)
{
PlatformsGrid.DataContext = platform;
PlatformsGrid.Items.Add(platform);
}
}
追加されたアイテムを取得して適切なオブジェクトプロパティを表示するにはどうすればよいですか(今のところ画像は無視します)。TextBlockのコンテンツにデータを入力することに興味があります。
誰もが提供できる助けに感謝します!
ありがとう、アレックス。