私のアプリの基本的なナビゲーション機能は、リストボックスから項目を選択し、選択された項目を決定し、そのid
値を取得することから成ります。 id
の値を次のページに渡し、新しいデータをプルダウンするWebクライアントで使用するためにapi urlに追加します。ここに私が今持っているものがあります。WP7ページ間でデータを渡す
選択した項目を決定し、セカンダリページに移動します。二次ページで
public void genreSelectedHandler(object sender, RoutedEventArgs e)
{
ResultGenre data = (sender as TextBlock).DataContext as ResultGenre;
ListBoxItem pressedItem = this.listGenres.ItemContainerGenerator.ContainerFromItem(data) as ListBoxItem;
if (pressedItem != null)
{
string genreID = "http://api.beatport.com/catalog/3/beatport/genre?id=" + data.id;
this.NavigationService.Navigate(new Uri("/Pages/GenrePage.xaml?genreID=" + genreID, UriKind.Relative));
}
}
私は、前のページからURLを取得するためにOnNavigatedTo使用することができますが、私がこだわっている部分は、WebクライアントにそのURLを差し込むています。
public GenrePage()
{
InitializeComponent();
// WebClient jsonRelease
WebClient jsonGenres = new WebClient();
Uri apiGenre = new Uri("URL from previous page goes here");
jsonGenres.DownloadStringCompleted += new DownloadStringCompletedEventHandler(jsonGenres_GetDataCompleted);
jsonGenres.DownloadStringAsync(apiGenre);
}
// Textblock data from main page
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
string genreID = "";
if (NavigationContext.QueryString.TryGetValue("genreID", out genreID))
base.OnNavigatedTo(e);
}
私ができる唯一の事は、セカンダリページの既存のコントロールにURLを追加することです。私がやろうとしていることを達成するためのよりよい方法はありますか?私はMVVMフレームワークを少し読んだ。それがこれを処理する良い方法でしょうか?もしそうなら、それはどのように機能するでしょうか?助けてくれてありがとう。
これは完全に機能しました。ありがとう! – nos9