CustomContentState Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
CustomContentState habilita la posibilidad de navegar por los distintos estados de una sola parte del contenido de origen sin volverlo a cargar en las navegaciones posteriores.
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
- Herencia
-
CustomContentState
- Atributos
Ejemplos
A continuación se muestra un ejemplo de una CustomContentState implementación que invalida 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
Comentarios
De forma predeterminada, NavigationService no almacena una instancia de un objeto de contenido en el historial de navegación. En su lugar, NavigationService crea una nueva instancia del objeto de contenido cada vez que se navega a mediante el historial de navegación. Este comportamiento está diseñado para evitar un consumo excesivo de memoria cuando se navegan grandes cantidades y grandes fragmentos de contenido. Por lo tanto, el estado del contenido no se recuerda de una navegación a la siguiente. Sin embargo, WPF proporciona la capacidad de asociar un fragmento de estado personalizado con la entrada del historial de navegación para un fragmento de contenido.
El estado personalizado asociado a una entrada del historial de navegación debe ser una clase que derive de CustomContentState. Puede asociar un CustomContentState objeto a una entrada del historial de navegación mediante una de las técnicas siguientes:
Llamada a AddBackEntry:
Se establece NavigatingCancelEventArgs.Content cuando se genera uno de los siguientes eventos:
Mediante la implementación IProvideCustomContentState en la clase que quiere que el estado personalizado esté asociado a él.
Nota
Si llama al método AddBackEntry , debe controlar el evento Navigating o implementar IProvideCustomContentState.
Cuando se navega a la entrada del historial de navegación, WPF comprueba si un objeto personalizado CustomContentState está asociado a él. Si es así, llama Replay a para permitir que el objeto personalizado CustomContentState aplique el estado que recordó desde la navegación anterior.
Una clase personalizada CustomContentState puede invalidar JournalEntryName para cambiar el nombre que aparece para la entrada del historial de navegación a la que está asociado el CustomContentState objeto. El valor que JournalEntryName devuelve es visible desde la interfaz de usuario de navegación de los distintos navegadores (explorador, NavigationWindowo Frame).
Una clase que deriva de CustomContentState debe ser serializable, lo que significa que debe aumentarse al menos con SerializableAttributey, opcionalmente, implementar ISerializable.
Importante
Cuando almacena información en estado de contenido personalizado, no puede almacenar referencias a la instancia de la página para la que está recordando el estado si no desea que el contenido se conserve en la memoria. Esto evita que WPF libere la instancia de página y derrota el propósito del comportamiento predeterminado del historial de navegación. Si debe hacerlo, considere la posibilidad de usar KeepAlive en su lugar.
Constructores
CustomContentState() |
Inicializa una nueva instancia de la clase CustomContentState. |
Propiedades
JournalEntryName |
Obtiene el nombre del contenido almacenado en el historial de navegación. El valor de se muestra desde la interfaz de usuario de JournalEntryName navegación del NavigationWindowexplorador , Framey . |
Métodos
Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
GetHashCode() |
Sirve como la función hash predeterminada. (Heredado de Object) |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
Replay(NavigationService, NavigationMode) |
Se le llama para volver a aplicar el estado a una parte del contenido cuando se produce la navegación. |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |