CustomContentState Classe

Definição

CustomContentState permite a capacidade de navegar por diferentes estados de um único conteúdo de origem sem recarregar o conteúdo de origem para cada navegação subsequente.

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
Herança
CustomContentState
Atributos

Exemplos

Veja a seguir um exemplo de uma CustomContentState implementação que substitui 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

Comentários

Por padrão, 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 sempre que ele é navegado usando o histórico de navegação. Esse comportamento foi projetado para evitar o consumo excessivo de memória quando grandes números e grandes partes de conteúdo estão sendo navegadas. Consequentemente, o estado do conteúdo não é lembrado de uma navegação para a outra. No entanto, WPF fornece a capacidade de associar uma parte do estado personalizado à entrada do histórico de navegação para um conteúdo.

O estado personalizado associado a uma entrada de histórico de navegação deve ser uma classe que deriva de CustomContentState. Você associa um CustomContentState objeto a uma entrada de histórico de navegação usando uma das seguintes técnicas:

Note

Se você chamar o método AddBackEntry , deverá manipular o evento Navigating ou implementar IProvideCustomContentState.

Quando a entrada do histórico de navegação é acessada, WPF verifica se um objeto CustomContentState personalizado está associado a ele. Nesse caso, ele chama Replay para permitir que o objeto personalizado CustomContentState aplique o estado que ele lembrou da navegação anterior.

Uma classe personalizada CustomContentState pode substituir JournalEntryName para alterar o nome que aparece para a entrada do histórico de navegação à qual o CustomContentState objeto está associado. O valor retornado JournalEntryName é visível da interface do usuário de navegação dos vários navegadores (navegador ou NavigationWindowFrame).

Uma classe da CustomContentState qual deriva deve ser serializável, o que significa que ela deve pelo menos ser aumentada com SerializableAttributee, opcionalmente, implementar ISerializable.

Importante

Quando você armazena informações no estado de conteúdo personalizado, não é possível armazenar referências à instância da página para a qual você está se lembrando do estado se não quiser que o conteúdo seja retido na memória. Isso impede que WPF libere a instância da página e derrota a finalidade do comportamento padrão do histórico de navegação. Se você precisar fazer isso, considere usar KeepAlive em vez disso.

Construtores

Nome Description
CustomContentState()

Inicializa uma nova instância da classe CustomContentState.

Propriedades

Nome Description
JournalEntryName

Obtém o nome do conteúdo armazenado no histórico de navegação. O valor é JournalEntryName exibido da interface do usuário de NavigationWindowFramenavegação do navegador e do navegador.

Métodos

Nome Description
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
Replay(NavigationService, NavigationMode)

Chamado para reaplicar o estado a um pedaço de conteúdo quando a navegação ocorrer.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a

Confira também