ハブタイルと2つのテキストブロックを使用して、リストボックス内に3つの異なる値を表示しようとしています。現在、3つのアイテムのうち2つだけが表示されます。リリースurl
とリリース name
、および3番目のアイテムartistName
が表示されていません。Webクライアントを使用してJSONデータをダウンロードしています。これが私の現在の設定です。
最初の私のクラス
public class NewReleasesCharts
{
//public Metadata metadata { get; set; }
public ResultHome results = new ResultHome();
public IEnumerator<ResultHome> GetEnumerator()
{
return this.results.GetEnumerator();
}
}
public class ResultHome
{
public List<FeaturedReleases> featuredReleases { get; set; }
//public List<FeaturedCharts> featuredCharts { get; set; }
//public List<TopDownloads> topdownloads { get; set; }
//public List<MostPopularReleases> mostPopularReleases { get; set; }
//public List<Components> components { get; set; }
internal IEnumerator<ResultHome> GetEnumerator()
{
throw new NotImplementedException();
}
}
public class FeaturedReleases
{
public int id { get; set; }
public string type { get; set; }
public string name { get; set; }
public string slug { get; set; }
public List<ReleaseArtist> artists { get; set; }
public ReleaseImage images { get; set; }
}
public class ReleaseArtist
{
public int artistID { get; set; }
public string artistName { get; set; }
}
public class ReleaseImage
{
//public ReleaseSmall small { get; set; }
public ReleaseMedium medium { get; set; }
public ReleaseLarge large { get; set; }
}
public class ReleaseMedium
{
public int width { get; set; }
public int height { get; set; }
public string url { get; set; }
public string secureUrl { get; set; }
}
public class ReleaseLarge
{
public int width { get; set; }
public int height { get; set; }
public string url { get; set; }
public string secureUrl { get; set; }
}
xaml
<ListBox Grid.Row="0" x:Name="listRelease" ScrollViewer.VerticalScrollBarVisibility="Disabled">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<toolkit:WrapPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<toolkit:HubTile Source="{Binding images.large.url}" Margin="10" />
<TextBlock Text="{Binding name}" Width="173" />
<TextBlock Text="{Binding artists.artistName}" Width="173" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
と背後にあるコード
public void jsonHome_GetDataCompleted(object snder, DownloadStringCompletedEventArgs e)
{
NewReleasesCharts homeData = JsonConvert.DeserializeObject<NewReleasesCharts>(e.Result);
const int limit = 6;
this.listRelease.ItemsSource = homeData.results.featuredReleases.Take(limit);
}
JSON文字列は、api:http://api.beatport.com/catalog/3/beatport/homeをJSONフォーマッターに挿入することで表示できます。ありがとう。
アップデート
アーティストにバインドされた2番目のリストボックス
<ListBox ItemsSource="{Binding Artists}">
<ItemsPanelTemplate>
<toolkit:WrapPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding artistName}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>