IProvideCustomContentState Schnittstelle

Definition

Wird von einer Klasse implementiert, die dem Eintrag im Navigationsverlauf für einen Inhalt einen benutzerdefinierten Zustand hinzufügen muss, bevor von diesem Inhalt weg navigiert wird.

public interface class IProvideCustomContentState
public interface IProvideCustomContentState
type IProvideCustomContentState = interface
Public Interface IProvideCustomContentState

Hinweise

IProvideCustomContentState ermöglicht das Zuordnen eines benutzerdefinierten Zustands, der als benutzerdefinierte CustomContentState Klasse implementiert ist, dem Navigationsverlaufseintrag für Inhalte, von denen weg navigiert wurde.

Der benutzerdefinierte Zustand kann auch auf diese Weise zugeordnet werden, indem Folgendes verwendet wird:

Sie müssen implementieren IProvideCustomContentState , wenn Sie dem Navigationsverlauf einen benutzerdefinierten Zustand hinzufügen, indem Sie AddBackEntry aufrufen. Andernfalls funktioniert der Navigationsverlauf nicht ordnungsgemäß. Beachten Sie die folgenden Schritte:

  1. AddBackEntry wird aufgerufen, um dem aktuellen Inhalt einen benutzerdefinierten Zustand zuzuordnen.

  2. Der Navigationsverlaufseintrag wird zurück zu navigiert, und die Replay Methode des benutzerdefinierten Zustands wird aufgerufen, und der Zustand wird auf den Inhalt angewendet.

  3. Der vorherige Inhalt wird im Vorwärtsnavigationsverlauf zu navigiert.

  4. Der Navigationsverlaufseintrag wird zurück zu navigiert, aber der benutzerdefinierte Zustand wurde seit dem letzten Navigationsverlaufseintrag, zu dem er zugeordnet war, nicht beibehalten.

Dies ist das Standardverhalten, da sich der anfänglich im benutzerdefinierten Zustand aufgezeichnete Zustand ändern kann, nachdem er dem Navigationsverlauf hinzugefügt wurde. Wenn das benutzerdefinierte Zustandsobjekt zurück zu navigiert und sein Zustand angewendet wird, bevor sich ein Aspekt des Zustands ändert, bevor der Eintrag im Navigationsverlauf navigiert wird, kann die Statusänderung nicht im benutzerdefinierten Zustandsobjekt widergespiegelt werden. Darüber hinaus kann nicht explizit aufgerufen werden, AddBackEntry um ein neues benutzerdefiniertes Zustandsobjekt hinzuzufügen, das die Zustandsänderungen widerspiegelt. Daher wird aufgerufen, um sicherzustellen, GetContentState dass der aktuelle Zustand für eine bestimmte Navigation immer im Navigationsverlauf gespeichert wird.

Wichtig

Wenn Sie Informationen im benutzerdefinierten Inhaltszustand speichern, können Sie keine Verweise auf die Instanz der Seite speichern, für die Sie sich den Zustand merken. Dadurch wird verhindert, dass WPF die Seiteninstanz freigibt, und der Zweck des standardmäßigen Navigationsverlaufsverhaltens wird verfehlt. Wenn Sie dies tun müssen, können Sie stattdessen die Verwendung KeepAlive in Betracht ziehen.

Methoden

GetContentState()

Gibt eine Instanz einer benutzerdefinierten Zustandsklasse zurück, die einem Inhalt im Navigationsverlauf zugeordnet werden soll.

Gilt für: