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 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 :
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é soit associé.
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) |