私のアプリでは、自分のメディアプレーヤーを構築しています。ユーザーが再生する曲を選択すると、サンプルメディアとそれに関連付けられているメタデータ(アーティスト、トラック、アルバムアートなど)にリンクを渡すことができるようにするために、私が執着している部分は、データをメディアプレーヤーページに渡します。ここに私がこれまで持っていたものがあります。ページ間に複数のデータを渡すWP7
選択したアイテムを特定し、クエリ文字列にデータを追加します。私はメディアに複数の部分を渡すために、クエリ刺さを使用できるかどうかわからないクエリ文字列
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);
}
}
からデータをプルする方法OnNavigatedTo
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));
}
}
を更新し
他のページにデータを渡すために何か違うやり方をすればいいのです。私のすべてのデータは、Webクライアントを使用してWebから送られます。助けてくれてありがとう。
を、あなたは、MSDNのドキュメント(HTTPを見つけることができますmsdn.microsoft.com/en-us/library/system.windows.navigation.navigationcontext.querystring(v=vs.95).aspx)。 – nithins
それはうまくいった。どうもありがとう! – nos9
もう一度質問していただければ幸いです。 'Artists'は' Tracks'クラス内のコレクションであることを忘れていました。私はそれを次のページに渡すことができるように、そのデータをどのように取得するのですか?複数のアーティストがいる場合は特にですか?上記の私の更新されたコードを見てください。ありがとう – nos9