CustomContentState Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
CustomContentState permite navegar por diferentes estados de um único conteúdo de origem sem recarregar o conteúdo de origem em cada navegação subsequente.
public ref class CustomContentState abstract
[System.Serializable]
public abstract class CustomContentState
[<System.Serializable>]
type CustomContentState = class
Public MustInherit Class CustomContentState
- Herança
-
CustomContentState
- Atributos
Exemplos
Segue-se um exemplo de uma CustomContentState implementação que sobrepõe 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
Observações
Por defeito, NavigationService não armazena uma instância de um objeto de conteúdo no histórico de navegação. Em vez disso, NavigationService cria uma nova instância do objeto de conteúdo cada vez que é navegado usando o histórico de navegação. Este comportamento foi concebido para evitar um consumo excessivo de memória quando se navegam grandes quantidades e grandes partes de conteúdo. Consequentemente, o estado do conteúdo não é recordado de uma navegação para outra. No entanto, o WPF permite associar um pedaço de estado personalizado à entrada do histórico de navegação de um conteúdo.
O estado personalizado associado a uma entrada de histórico de navegação deve ser uma classe que deriva de CustomContentState. Associa-se um CustomContentState objeto a uma entrada de histórico de navegação utilizando uma das seguintes técnicas:
Chamar AddBackEntry:
Definição NavigatingCancelEventArgs.Content quando um dos seguintes eventos é levantado:
Implementando IProvideCustomContentState na classe que quer que o estado personalizado seja associado a ela.
Note
Se chamar o método AddBackEntry , deve gerir o evento Navigating ou implementar IProvideCustomContentState.
Quando a entrada do histórico de navegação é explorada, WPF verifica se um objeto personalizado CustomContentState está associado a ele. Se sim, chama Replay para permitir que o objeto personalizado CustomContentState aplique o estado que recordou da navegação anterior.
Uma classe personalizada CustomContentState pode substituir JournalEntryName para alterar o nome que aparece na entrada do histórico de navegação à qual o CustomContentState objeto está associado. O valor que JournalEntryName retorna é visível a partir da interface de navegação dos vários navegadores (navegador, NavigationWindow, ou Frame).
Uma classe que deriva de CustomContentState deve ser serializável, o que significa que deve ser pelo menos aumentada com SerializableAttribute, e opcionalmente implementar ISerializable.
Importante
Quando armazena informação num estado de conteúdo personalizado, não pode guardar quaisquer referências à instância da página para a qual se está a lembrar do estado se não quiser que o conteúdo seja mantido na memória. Isto impede que o WPF liberte a instância da página e anula o propósito do comportamento padrão do histórico de navegação. Se for preciso fazer isto, considere usar KeepAlive em vez disso.
Construtores
| Name | Description |
|---|---|
| CustomContentState() |
Inicializa uma nova instância da CustomContentState classe. |
Propriedades
| Name | Description |
|---|---|
| JournalEntryName |
Obtém o nome do conteúdo que está armazenado no histórico de navegação. O valor de JournalEntryName é apresentado a partir de NavigationWindow, Frame, e da interface de navegação do navegador. |
Métodos
| Name | Description |
|---|---|
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| Replay(NavigationService, NavigationMode) |
Chamado para reaplicar estado a um conteúdo quando ocorre navegação. |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |