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 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:
Chamando AddBackEntry:
Configuração NavigatingCancelEventArgs.Content quando um dos seguintes eventos são gerados:
Implementando IProvideCustomContentState na classe que deseja que o estado personalizado seja associado a ela.
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) |