CustomContentState Klasse

Definition

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:

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)

Gilt für

Siehe auch