CustomContentState Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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:
Chamando AddBackEntry:
Configuração NavigatingCancelEventArgs.Content quando um dos seguintes eventos é gerado:
Implementando IProvideCustomContentState na classe que deseja que o estado personalizado seja associado a ela.
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) |