我的应用程序的基本导航功能包括从列表框中选择一个项目,确定选择了哪个项目并获取其值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