Share via


CustomContentState Classe

Définition

CustomContentState active la fonctionnalité pour naviguer à travers les différents états d'une seule portion de contenu source sans recharger le contenu source à chaque navigation suivante.

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
Héritage
CustomContentState
Attributs

Exemples

Voici un exemple d’implémentation CustomContentState qui remplace 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

Remarques

Par défaut, NavigationService ne stocke pas de instance d’un objet de contenu dans l’historique de navigation. Au lieu de cela, NavigationService crée une nouvelle instance de l’objet de contenu chaque fois qu’il est parcouru à l’aide de l’historique de navigation. Ce comportement est conçu pour éviter une consommation excessive de mémoire lorsque de grands nombres et de grands éléments de contenu sont parcourus. Par conséquent, l’état du contenu n’est pas mémorisé d’une navigation à l’autre. Toutefois, WPF offre la possibilité d’associer un élément d’état personnalisé à l’entrée d’historique de navigation pour un élément de contenu.

L’état personnalisé associé à une entrée d’historique de navigation doit être une classe qui dérive de CustomContentState. Vous associez un CustomContentState objet à une entrée d’historique de navigation à l’aide de l’une des techniques suivantes :

Notes

Si vous appelez la méthode AddBackEntry , vous devez gérer l’événement Navigation ou implémenter IProvideCustomContentState.

Lorsque l’entrée de l’historique de navigation est parcourue, WPF vérifie si un objet personnalisé CustomContentState y est associé. Si c’est le cas, il appelle Replay pour permettre à l’objet personnalisé CustomContentState d’appliquer l’état qu’il a mémorisé lors de la navigation précédente.

Une classe personnalisée CustomContentState peut remplacer JournalEntryName pour modifier le nom qui s’affiche pour l’entrée d’historique de navigation à laquelle l’objet CustomContentState est associé. La valeur qui JournalEntryName retourne est visible à partir de l’interface utilisateur de navigation des différents navigateurs (navigateur, NavigationWindow, ou Frame).

Une classe dérivée de CustomContentState doit être sérialisable, ce qui signifie qu’elle doit au moins être augmentée avec SerializableAttribute, et éventuellement implémenter ISerializable.

Important

Lorsque vous stockez des informations dans un état de contenu personnalisé, vous ne pouvez pas stocker de références à l’instance de la page pour laquelle vous vous souvenez de l’état si vous ne souhaitez pas que le contenu soit conservé en mémoire. Cela empêche WPF de libérer la page instance et contrevient à l’objectif du comportement de l’historique de navigation par défaut. Si vous devez effectuer cette opération, envisagez d’utiliser KeepAlive à la place.

Constructeurs

CustomContentState()

Initialise une nouvelle instance de la classe CustomContentState.

Propriétés

JournalEntryName

Obtient le nom du contenu stocké dans l’historique de navigation. La valeur de JournalEntryName est affichée à partir de , Frameet de l’interface utilisateur de navigation du NavigationWindownavigateur.

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
Replay(NavigationService, NavigationMode)

Appelé pour réappliquer l'état à un morceau de contenu lorsque la navigation s'effectue.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à

Voir aussi