CustomContentState Classe

Definição

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:

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)

Aplica-se a

Ver também