我的應用程序的基本導航功能包括從列表框中選擇一個項目,確定選擇了哪個項目並獲取其值id
值。將id
值傳遞到下一頁,並將其添加到api網址,以便在Web客戶端中使用以下拉新數據。這是我現在擁有的。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));
}
}
在次級頁面,我可以使用的OnNavigatedTo擺脫前一個頁面的URL,但我卡上堵塞該URL到Web客戶端的一部分。
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 2012-04-23 02:21:21