WP7 determining which page I navigated from

2019-06-09 05:03发布

I have 3 pages. Page 1 is search criteria, page 2 is list, page 3 is details.

If I go to page 2 from page 1 I want to call a web service and load details onto the page.

If I go to page 2 from page 3 (ie using the back button) I don’t want to reload the data as I already have it.

To determine what to do when page 2 is activated I need to know where I came from.

I can't see anything in the navigating event that tells me this.

Any ideas?

Cheers

Steve

3条回答
Luminary・发光体
2楼-- · 2019-06-09 05:26

As a new (& better?) solution, you should consider using the new (at 12/9/2010) Non-Linear Navigation Service.

查看更多
闹够了就滚
3楼-- · 2019-06-09 05:26

Alternatively, you can add a new entry to application's resource dictionary and retrieve it on the next page by overriding OnNavigatedTo method.

To add entry:

App.Current.Resources.Add("from",2);

To retrieve the entry:

if(App.Current.Resources.Contains("from")
{
   lastPage = (int)App.Current.Resources["from"];
}

For more information see Chapter 6 of Charles Petzold book available on the following link:
http://www.charlespetzold.com/phone/

查看更多
forever°为你锁心
4楼-- · 2019-06-09 05:41

There is no way to do this with the API/SDK as is.

You could, however, have the calling page tell page3 what called it.
One example of how to do this would be to include an entry on the query string. i.e.

NavigationService.NavigateTo(new Uri("page3.xaml?from=page2", UriKind.Relative));

Then, on page3:

string sourcePage;

if (NavigationContext.QueryString.TryGetValue("from", out sourcePage))
{
    // test the value of sourcePage and act accordingly
}
查看更多
登录 后发表回答