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 une 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 en cours d’accès. Par conséquent, l’état du contenu n’est pas mémorisé d’une navigation à l’autre. Toutefois, WPF permet d’associer un élément d’état personnalisé à l’entrée d’historique de navigation d’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 De navigation ou implémenter IProvideCustomContentState.

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

Une classe personnalisée CustomContentState peut remplacer JournalEntryName pour modifier le nom qui apparaît pour l’entrée d’historique de navigation à laquelle l’objet CustomContentState est associé. La valeur retournée JournalEntryName est visible à partir de l’interface utilisateur de navigation des différents navigateurs (Internet Explorer 7, NavigationWindow, 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 l’instance de page et de vaincre l’objectif du comportement de l’historique de navigation par défaut. Si vous devez le faire, envisagez d’utiliser KeepAlive à la place.

Constructeurs

CustomContentState()

Initialise une nouvelle instance de la classe CustomContentState.

Propriétés

JournalEntryName

Nom pour le contenu stocké dans l'historique de navigation. La valeur est JournalEntryName affichée à partir de NavigationWindow, Frameet Windows interface utilisateur de navigation d’Internet Explorer 7.

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