2016-04-10 16 views
0
this.Frame.Navigate(typeof(SomeClass), file); 
this.Frame.GoBack(); 

Hallo Jungs,Uwp Anwendung Navigation zwischen den Seiten

GoBack() -Methode eine neue Instanz zu schaffen, aber ich will it.I nicht die vorherige Seite bleiben will, wie ich nach links und hält Daten. Irgendeine Idee zu diesem Thema?

+0

Dies kann helfen: http://stackoverflow.com/questions/11539755/winrt-uwp-frame-and-page-caching -wie-erstellen-neue-Seite-Instanz-auf-navigieren –

Antwort

0

In App.xaml.cs sollten Sie die Größe des Seitencaches des Frames festlegen. Fügen Sie die Zeile hinzu, die die CacheSize festlegt, nachdem der NavigationFailed-Handler zugewiesen wurde.

rootFrame = new Frame(); 

rootFrame.NavigationFailed += OnNavigationFailed; 

// Add this line after the above 2 lines that already exist. 
rootFrame.CacheSize = 2; // Or some other number that makes sense for your application 

Auf der Seite, auf der Daten gespeichert werden sollen, muss im XAML der Cache-Modus auf "erforderlich" gesetzt werden.

<Page ... NavigationCacheMode="Required" >...</Page> 

In Ihrem Code-Behind, müssen Sie OnNavigatedFrom und OnNavigatedTo zu speichern und wiederherzustellen Zustand außer Kraft zu setzen.

Wenn Sie keine Daten beibehalten möchten, legen Sie auf dieser Seite die Einstellung NavigationCacheMode = "Disabled" fest. Sie navigieren weiterhin mit Frame.Navigate (typeof (SomePage));

+0

Vielen Dank für die Antwort. Wo muss ich rootFrame-Code in app.xaml.cs schreiben – alidrsn

+0

Und was muss ich tun, um jedes Mal neue Instanzen der nächsten Seite zu erstellen, wenn ich zu ihr navigiere und alle Daten lösche? – alidrsn

+0

@alidrsn Aktualisiert, um Ihre Fragen zu beantworten. –

0

Sie haben die NavigationCacheMode Eigenschaft setzen:

public MainPage() 
{ 
    InitializeComponent(); 
    NavigationCacheMode = NavigationCacheMode.Enabled; 
} 
Verwandte Themen