我有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