CustomContentState Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
CustomContentState ermöglicht das Navigieren durch verschiedene Zustände eines Quellinhalts, ohne dass dieser für jede nachfolgende Navigation erneut geladen werden muss.
public ref class CustomContentState abstract
[System.Serializable]
public abstract class CustomContentState
public abstract class CustomContentState
[<System.Serializable>]
type CustomContentState = class
type CustomContentState = class
Public MustInherit Class CustomContentState
- Vererbung
-
CustomContentState
- Attribute
Beispiele
Im Folgenden sehen Sie ein Beispiel für eine CustomContentState Implementierung, die überschrieben wird JournalEntryName.
using System;
using System.Windows.Controls;
using System.Windows.Navigation;
[Serializable]
public class MyCustomContentState : CustomContentState
{
string dateCreated;
TextBlock dateTextBlock;
public MyCustomContentState(string dateCreated, TextBlock dateTextBlock)
{
this.dateCreated = dateCreated;
this.dateTextBlock = dateTextBlock;
}
public override string JournalEntryName
{
get
{
return "Journal Entry " + this.dateCreated;
}
}
public override void Replay(NavigationService navigationService, NavigationMode mode)
{
this.dateTextBlock.Text = this.dateCreated;
}
}
Imports System.Windows.Controls
Imports System.Windows.Navigation
<Serializable>
Public Class MyCustomContentState
Inherits CustomContentState
Private dateCreated As String
Private dateTextBlock As TextBlock
Public Sub New(ByVal dateCreated As String, ByVal dateTextBlock As TextBlock)
Me.dateCreated = dateCreated
Me.dateTextBlock = dateTextBlock
End Sub
Public Overrides ReadOnly Property JournalEntryName() As String
Get
Return "Journal Entry " & Me.dateCreated
End Get
End Property
Public Overrides Sub Replay(ByVal navigationService As NavigationService, ByVal mode As NavigationMode)
Me.dateTextBlock.Text = Me.dateCreated
End Sub
End Class
Hinweise
Speichert standardmäßig NavigationService keine Instanz eines Inhaltsobjekts im Navigationsverlauf. NavigationService Erstellt stattdessen jedes Mal, wenn es mithilfe des Navigationsverlaufs zu einer neuen Instanz des Inhaltsobjekts navigiert wird. Dieses Verhalten ist so konzipiert, dass ein übermäßiger Speicherverbrauch vermieden wird, wenn große Zahlen und große Inhalte navigiert werden. Folglich wird der Zustand des Inhalts nicht von einer Navigation zur nächsten gespeichert. WPF bietet jedoch die Möglichkeit, einem Teil des benutzerdefinierten Zustands den Navigationsverlaufseintrag für einen Inhalt zuzuordnen.
Benutzerdefinierter Zustand, der einem Navigationsverlaufseintrag zugeordnet ist, muss eine Klasse sein, die von CustomContentState. Sie ordnen ein CustomContentState Objekt einem Navigationsverlaufseintrag zu, indem Sie eine der folgenden Techniken verwenden:
Aufrufen von AddBackEntry:
Einstellung NavigatingCancelEventArgs.Content , wenn eines der folgenden Ereignisse ausgelöst wird:
Indem Sie die Klasse implementieren IProvideCustomContentState , die benutzerdefinierten Zustand zugeordnet werden soll.
Hinweis
Wenn Sie die AddBackEntry-Methode aufrufen, müssen Sie das Navigationsereignis behandeln oder implementieren IProvideCustomContentState.
Wenn der Navigationsverlaufseintrag navigiert wird, überprüft WPF, ob ein benutzerdefiniertes CustomContentState Objekt damit verknüpft ist. Wenn ja, ruft er auf Replay , damit das benutzerdefinierte CustomContentState Objekt den Zustand anwenden kann, den er aus der vorherigen Navigation erinnert.
Eine benutzerdefinierte CustomContentState Klasse kann überschreiben JournalEntryName , um den Namen zu ändern, der für den Navigationsverlaufseintrag angezeigt wird, dem das CustomContentState Objekt zugeordnet ist. Der zurückgegebene Wert JournalEntryName ist aus der Navigationsbenutzeroberfläche der verschiedenen Navigatoren (Internet Explorer 7, NavigationWindow, ) Framesichtbar.
Eine Klasse, die von CustomContentState der abgeleitet wird, muss serialisierbar sein. Dies bedeutet, dass sie mindestens mit , SerializableAttributeund optional implementiert ISerializablewerden muss.
Wichtig
Wenn Sie Informationen im benutzerdefinierten Inhaltszustand speichern, können Sie keine Verweise auf die Instanz der Seite speichern, für die Sie sich erinnern, wenn der Inhalt nicht im Arbeitsspeicher aufbewahrt werden soll. Dadurch wird verhindert, dass WPF die Seiteninstanz freigibt und den Zweck des Standardmäßigen Navigationsverlaufsverhaltens besiegt. Wenn Sie dies tun müssen, sollten Sie stattdessen die Verwendung in KeepAlive Betracht ziehen.
Konstruktoren
CustomContentState() |
Initialisiert eine neue Instanz der CustomContentState-Klasse. |
Eigenschaften
JournalEntryName |
Der Name für den Inhalt, der im Navigationsverlauf gespeichert wird. Der Wert JournalEntryName wird von der Navigationsbenutzeroberfläche von NavigationWindowFrameInternet Explorer 7 und Windows angezeigt. |
Methoden
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
Replay(NavigationService, NavigationMode) |
Wird aufgerufen, um beim Durchführen einer Navigation erneut einen Zustand auf einen Inhalt anzuwenden. |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |