私のアプリでは、独自のメディアプレーヤーを構築しています。ユーザーが再生する曲を選択したときに、サンプルメディアへのリンクとそれに関連付けられたメタデータ(アーティスト、トラック、アルバムアートなど)を渡せるようにしたい場合、私がこだわっているのは、すべてをグループ化する方法です。データをメディアプレーヤーページに渡します。これが私がこれまでに持っているものです。
選択されたアイテムを特定し、クエリ文字列にデータを追加します。
更新しました
public void musicSampleSelectedHandler(object sender, RoutedEventArgs e)
{
Track selected = (sender as Image).DataContext as Track;
ListBoxItem pressedItem = this.listReleaseMain.ItemContainerGenerator.ContainerFromItem(selected) as ListBoxItem;
if (pressedItem != null)
{
string _rT = selected.title;
string _rN = selected.release.name;
//string _rA = selected.artists; ????
string _rI = selected.images.large.url;
string _rS = selected.sampleUrl;
this.NavigationService.Navigate(new Uri("/Pages/MediaPage.xaml?releaseName=" + _rN + "&releaseTrack=" + _rT + "&releaseImage=" + _rI
+ "&releaseSample=" + _rS, UriKind.Relative));
}
}
クエリ文字列からデータを引き出すOnNavigatedToメソッド
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedTo(e);
string releaseName = String.Empty;
string releaseImg = String.Empty;
string releaseUrl = String.Empty;
if (NavigationContext.QueryString.TryGetValue("releaseUrl", out releaseUrl))
{
sampleMedia.Source = new Uri(releaseUrl, UriKind.Absolute);
}
}
クエリスティングを使用して複数のピースをメディアプレーヤーに渡すことができるかどうか、またはデータを他のページに渡すために別のことを行うことができるかどうかはわかりません。私のデータはすべて、Webクライアントを使用してWebから取得されます。助けてくれてありがとう。