it-swarm.com.de

Windows Phone 8.1 - Seitennavigation

Aus Windows Phone 8 Kommend Ich hätte nie gedacht, dass es eine Menge Änderungen am Windows Phone 8.1 Code geben wird. Grundsätzlich frage ich mich nur, wie man die Seitennavigation so macht, wie man es mit Windows Phone 8 Machen würde. Dazu sollten Sie hinzufügen:

NavigationService.Navigate(new Uri("/SecondPage.xaml", UriKind.Relative));

aber dieser Code funktioniert nicht für Windows Phone 8.1.

Kann mir bitte jemand dabei helfen? Geben Sie nach Möglichkeit Links oder Dokumentationen zu allen neuen Windows Phone 8.1 - Methoden an.

37
Ahmed.C

In Windows Phone 8.1 sieht die Seitennavigationsmethode folgendermaßen aus:

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

Dies bedeutet, dass Sie zu "SecondPage" navigieren und "param" (eine auf dem Objekt basierende Klasse) übergeben.

Wenn Sie keine Parameter übergeben müssen, können Sie Folgendes verwenden:

Frame.Navigate(typeof(SecondPage));

Sie finden die Dokumentation für diesen MSDN-Link

63
Chris Shao

Wenn Sie zurückkehren möchten, können Sie Folgendes verwenden:

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

Wenn Sie auf die Schaltfläche "Zurück" klicken möchten, müssen Sie das Ereignis "hardwarebutton" überschreiben:

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;
            }

        }

Stellen Sie sicher, dass e.Handled auf true gesetzt ist.

23
Harsha Bhat
// Navigation Without parameters

this.Frame.Navigate(typeof(SecondPage));



// Navigation with parameters

this.Frame.Navigate(typeof(SecondPage),MyParameters);
1

So senden Sie mehrere Parameter: Die Antwort ist ziemlich spät, kann aber jemandem helfen. Sie können eine benutzerdefinierte Klasse erstellen, Ihre Parameter darin festlegen und ihr Objekt als Parameter an Ihre Zielseite senden.

Beispielsweise. Ihre benutzerdefinierte Klasse:

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);

Und dann können Sie auf der Zielseite in der Funktion OnNavigatedTo Folgendes abrufen:

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

Ich hoffe es hilft.

0
user5434084