Windows Phone 8.1 - Page Navigation

前端 未结 4 1668
无人共我
无人共我 2020-12-01 05:11

Coming from Windows Phone 8 I have never thought there will be a lot of changes done to the Windows Phone 8.1 code. Basically I\'m just wondering h

相关标签:
4条回答
  • 2020-12-01 05:43

    To send multiple parameters: Its quite late to answer but might help someone. You can create a custom class, set your parameters in it and send its object as a parameter to your target page.

    For example. Your custom class:

    public class CustomDataClass
    {
    public string name;
    public string email;
    } 
    
    CustomDataClass myData = new CustomDataClass();
    myData.name = "abc";
    myData.email = "abc@hotmail.com";
    
    Frame.Navigate(typeof(SecondPage), myData);
    

    And then on the target page you can retrieve in OnNavigatedTo function like this:

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
    CustomDataClass myData2 = e.Parameter as CustomDataClass;
    string name = myData2.name;
    string email = myData2.email;
    }
    

    Hope it helps.

    0 讨论(0)
  • 2020-12-01 05:47

    In Windows Phone 8.1, Page Navigation method is like this:

    Frame.Navigate(typeof(SecondPage), param);
    

    It means that you will navagate to 'SecondPage', and pass 'param' (a class based on object).

    If you needn't to pass any parameters, You can use this:

    Frame.Navigate(typeof(SecondPage));
    

    You can find the documentation for this MSDN link

    0 讨论(0)
  • 2020-12-01 05:48

    In case you want to go back you can use:

    if(this.Frame.CanGoBack)
    {
    this.Frame.GoBack();
    }
    

    If you want to go back on the click of back button, you need to override the hardwarebutton event:

    HardwareButtons.BackPressed += HardwareButtons_BackPressed;
    
    void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e)
            {
                Frame rootFrame = Window.Current.Content as Frame;
                if(rootFrame != null && rootFrame.CanGoBack)
                {
                    rootFrame.GoBack();
                    e.Handled = true;
                }
    
            }
    

    Make sure to set e.Handled to true.

    0 讨论(0)
  • 2020-12-01 05:58
    // Navigation Without parameters
    
    this.Frame.Navigate(typeof(SecondPage));
    
    
    
    // Navigation with parameters
    
    this.Frame.Navigate(typeof(SecondPage),MyParameters);
    
    0 讨论(0)
提交回复
热议问题