我有3页。第1页是搜索条件,第2页是列表,第3页是详细信息。WP7确定从哪个页面导航
如果我从第1页转到第2页,我想调用Web服务并将详细信息加载到页面上。
如果我从页面3转到页面2(即使用后退按钮),我不想重新加载数据,因为我已经有了它。
要确定页面2激活时该怎么做,我需要知道我来自哪里。
我看不到任何告诉我这个导航事件。
任何想法?
干杯
史蒂夫
我有3页。第1页是搜索条件,第2页是列表,第3页是详细信息。WP7确定从哪个页面导航
如果我从第1页转到第2页,我想调用Web服务并将详细信息加载到页面上。
如果我从页面3转到页面2(即使用后退按钮),我不想重新加载数据,因为我已经有了它。
要确定页面2激活时该怎么做,我需要知道我来自哪里。
我看不到任何告诉我这个导航事件。
任何想法?
干杯
史蒂夫
作为新的(&更好?)解决方案,你应该考虑使用新的(在12/9/2010)Non-Linear Navigation Service。
没有办法与API/SDK做到这一点的是。
但是,您可以让调用页面告诉page3是什么调用它。
如何做到这一点的一个例子是在查询字符串中包含一个条目。即
NavigationService.NavigateTo(new Uri("page3.xaml?from=page2", UriKind.Relative));
然后,在第3页:
string sourcePage;
if (NavigationContext.QueryString.TryGetValue("from", out sourcePage))
{
// test the value of sourcePage and act accordingly
}
或者,您可以添加新条目应用程序的资源字典,并通过重写的OnNavigatedTo方法来检索它的下一个页面上。
要添加条目:
App.Current.Resources.Add("from",2);
要检索条目:
if(App.Current.Resources.Contains("from")
{
lastPage = (int)App.Current.Resources["from"];
}
欲了解更多信息,请参阅查尔斯Petzold的书的第6章提供以下链接:
http://www.charlespetzold.com/phone/
为什么不只是检查你是否已经有数据? – driis 2010-11-01 19:34:14
Ye if(data == null)Load();这将是最好的 – 2010-11-01 20:24:11
我不能检查我是否有数据,因为虚拟机是单身人士,但你的建议帮助我弄清楚如何使用dataloaded标志和使用navigatingcanceleventargs检查我是否回到我的列表页面或退出我的列表页面。 – 2010-11-01 21:51:29