Windows Phone 8.1 - Навигация по страницам
Из Windows Phone 8
Я никогда не думал, что будет внесено большое количество изменений в код Windows Phone 8.1
. В принципе, мне просто интересно, как делать навигацию по страницам так же, как вы делаете это на Windows Phone 8
. Для этого вы должны добавить:
NavigationService.Navigate(new Uri("/SecondPage.xaml", UriKind.Relative));
но этот код не работает для Windows Phone 8.1
.
Может кто-нибудь, пожалуйста, помогите мне с этим? Если возможно, укажите любые ссылки или документацию по всем новым методам Windows Phone 8.1
.
Ответы
Ответ 1
В Windows Phone 8.1 метод Page Navigation выглядит следующим образом:
Frame.Navigate(typeof(SecondPage), param);
Это означает, что вы намагничиваете "SecondPage" и передаете "param" (класс на основе объекта).
Если вам не нужно передавать какие-либо параметры, вы можете использовать это:
Frame.Navigate(typeof(SecondPage));
Вы можете найти документацию для этой ссылки MSDN
Ответ 2
Если вы хотите вернуться назад, вы можете использовать:
if(this.Frame.CanGoBack)
{
this.Frame.GoBack();
}
Если вы хотите вернуться к нажатию кнопки "Назад", вам необходимо переопределить событие аппаратного обеспечения:
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;
}
}
Обязательно установите для параметра e.Handled значение true.
Ответ 3
// Navigation Without parameters
this.Frame.Navigate(typeof(SecondPage));
// Navigation with parameters
this.Frame.Navigate(typeof(SecondPage),MyParameters);
Ответ 4
Чтобы отправить несколько параметров:
Его довольно поздно ответить, но может помочь кому-то. Вы можете создать собственный класс, задать в нем свои параметры и отправить его объект в качестве параметра на целевую страницу.
Например. Ваш пользовательский класс:
public class CustomDataClass
{
public string name;
public string email;
}
CustomDataClass myData = new CustomDataClass();
myData.name = "abc";
myData.email = "[email protected]";
Frame.Navigate(typeof(SecondPage), myData);
И затем на целевой странице вы можете получить в функции OnNavigatedTo, как это:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
CustomDataClass myData2 = e.Parameter as CustomDataClass;
string name = myData2.name;
string email = myData2.email;
}
Надеюсь, что это поможет.