CustomContentState Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 :
Appel de AddBackEntry :
Définition NavigatingCancelEventArgs.Content lorsque l’un des événements suivants est déclenché :
En implémentant IProvideCustomContentState sur la classe qui souhaite que l’état personnalisé lui soit associé.
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) |