Compartilhar via


CustomContentState Classe

Definição

CustomContentState permite navegar pelos diferentes estados de uma única parte do conteúdo de origem sem recarregar o conteúdo de origem para cada navegação posterior.

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 navegados. Consequentemente, o estado do conteúdo não é lembrado de uma navegação para a outra. No entanto, o 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 derivada de CustomContentState. Você associa um CustomContentState objeto a uma entrada de histórico de navegação usando uma das seguintes técnicas:

Observação

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, o WPF verifica se um objeto personalizado CustomContentState 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 na interface do usuário de navegação dos vários navegadores (navegador, NavigationWindowou Frame).

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

Importante

Ao armazenar informações no estado de conteúdo personalizado, você não pode armazenar nenhuma referência à instância da página para a qual você está lembrando o estado se não quiser que o conteúdo seja retido na memória. Isso impede que o WPF libere a instância de 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

CustomContentState()

Inicializa uma nova instância da classe CustomContentState.

Propriedades

JournalEntryName

Obtém o nome do conteúdo armazenado no histórico de navegação. O valor de JournalEntryName é exibido na interface do usuário de navegação do NavigationWindownavegador , Framee .

Métodos

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 Object atual.

(Herdado de Object)
Replay(NavigationService, NavigationMode)

Chamado para reaplicar o estado a uma parte do 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