Speichern mehrerer Zustandssätze pro Seiteninstanz
Aktualisiert: November 2007
In diesem Beispiel wird veranschaulicht, wie mehrere Zustandssätze für eine einzelne Seiteninstanz gespeichert werden und wie durch diese Zustandssätze navigiert wird.
In diesem Beispiel soll nur ein bestimmtes Feature von Windows Presentation Foundation veranschaulicht werden, daher werden die bewährten Methoden für die Anwendungsentwicklung nicht befolgt. Ausführliche Informationen über empfohlene Vorgehensweisen bei der Anwendungsentwicklung für Windows Presentation Foundation (WPF) und Microsoft .NET Framework finden Sie unter folgenden Themen:
Eingabehilfen – Bewährte Methoden für Eingabehilfen
Lokalisierung – Übersicht über WPF-Globalisierung und -Lokalisierung
Leistung – Optimieren der WPF-Anwendungsleistung
Sicherheit – Windows Presentation Foundation-Sicherheit
Erstellen des Beispiels
Installieren Sie das Windows Software Development Kit (SDK) und öffnen Sie dessen Buildumgebungs-Befehlsfenster. Zeigen Sie im Startmenü auf Alle Programme und Microsoft Windows SDK, und klicken Sie dann auf CMD Shell.
Laden Sie das Beispiel, normalerweise aus der Software Development Kit (SDK)-Dokumentation, auf Ihre Festplatte herunter.
Um das Beispiel über das Buildumgebungs-Befehlsfenster zu erstellen, wechseln Sie zum Quellverzeichnis des Beispiels. Geben Sie an der Eingabeaufforderung MSBUILD ein.
Um das Beispiel mit in Microsoft Visual Studio zu erstellen, laden Sie die Projektmappe oder Projektdatei des Beispiels, und drücken Sie STRG+UMSCHALT+B.
Ausführen des Beispiels
Um das kompilierte Beispiel über das Buildumgebungs-Befehlsfenster auszuführen, führen Sie die EXE-Datei aus dem Ordner Bin\Debug oder Bin\Release, die unter dem Quellcodeordner des Beispiels enthalten sind, aus.
Um das kompilierte Beispiel in Visual Studio mit Debuggen auszuführen, drücken Sie F5.
Hinweise
Durch die Zustandsnavigation kann die Änderung des Zustands eines Inhaltselements als Eintrag im Navigationsverlauf aufgezeichnet werden, zu dem anschließend navigiert werden kann. Bei der Navigation zu dem vom Navigationsverlauf aufgezeichneten Zustand wird dieser wiederhergestellt.
In diesem Beispiel wird die Zustandsnavigation veranschaulicht, indem aufgezeichnet wird, wann das ausgewählte Element eines Listenfelds geändert wird. Jeder Zustandseintrag wird von einem benutzerdefinierten CustomContentState-Objekt gespeichert und dem Navigationsverlauf hingefügt, indem AddBackEntry zum Hinzufügen des ersten Eintrags aufgerufen wird. GetContentState wird aufgerufen, um sicherzustellen, dass ein Eintrag über mehrere Navigationsvorgänge hinweg beibehalten wird. Darüber hinaus wird gezeigt, wie ein Zustandsnavigationseintrag aus dem Navigationsverlauf zurück entfernt wird.
Diese Technik ist äußerst nützlich, wenn Sie mehrere Zustandssätze für eine einzelne Seiteninstanz speichern und durch diese navigieren müssen. Um ein einzelnes Zustandselement über mehrere Seiteninstanzen hinweg zu speichern, sollten Sie eine journalfähige Abhängigkeitseigenschaft verwenden (siehe Speichern eines Zustandselements über mehrere Seiteninstanzen). Zum Speichern eines einzelnen Zustandssatzes über mehrere Seiteninstanzen hinweg verwenden Sie IProvideCustomContentState (siehe Speichern eines Zustandssatzes über mehrere Seiteninstanzen).
Wichtiger Hinweis: |
---|
Wenn Sie Informationen im benutzerdefinierten Inhaltszustand speichern, achten Sie darauf, keine Verweise auf die Instanz der Seite zu speichern, für die Sie Zustände speichern, während Sie von der Seite fort navigieren. Hierdurch wird verhindert, dass WPF die Seiteninstanz freigibt. Außerdem wird der Vorteil des Standardverhaltens des Navigationsverlaufs zunichte gemacht. Sollte dies dennoch erforderlich sein, sollten Sie stattdessen KeepAlive verwenden. |