CustomContentState Classe

Definizione

CustomContentState consente di spostarsi tra stati diversi di un singolo contenuto di origine senza ricaricare il contenuto di origine per ogni navigazione successiva.

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
Ereditarietà
CustomContentState
Attributi

Esempio

Di seguito è riportato un esempio di implementazione CustomContentState che esegue l'override JournalEntryNamedi .

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

Commenti

Per impostazione predefinita, NavigationService non archivia un'istanza di un oggetto contenuto nella cronologia di navigazione. Crea invece NavigationService una nuova istanza dell'oggetto contenuto ogni volta che si passa a usando la cronologia di navigazione. Questo comportamento è progettato per evitare un consumo eccessivo di memoria quando si passa a numeri elevati e grandi parti di contenuto. Di conseguenza, lo stato del contenuto non viene memorizzato da uno spostamento al successivo. Tuttavia, macchine virtuali Windows consente di associare un elemento di stato personalizzato alla voce della cronologia di navigazione per una parte di contenuto.

Lo stato personalizzato associato a una voce della cronologia di navigazione deve essere una classe che deriva da CustomContentState. È possibile associare un CustomContentState oggetto a una voce della cronologia di navigazione usando una delle tecniche seguenti:

Note

Se si chiama il metodo AddBackEntry , è necessario gestire l'evento Navigating o implementare IProvideCustomContentState.

Quando si passa alla voce della cronologia di spostamento, macchine virtuali Windows verifica se è associato un oggetto personalizzato CustomContentState. In tal caso, chiama Replay per consentire all'oggetto personalizzato CustomContentState di applicare lo stato memorizzato nella struttura di spostamento precedente.

Una classe personalizzata CustomContentState può eseguire l'override JournalEntryName per modificare il nome visualizzato per la voce della cronologia di navigazione a cui è associato l'oggetto CustomContentState . Il valore restituito JournalEntryName è visibile dall'interfaccia utente di navigazione dei vari strumenti di navigazione (browser, NavigationWindowo Frame).

Una classe che deriva da CustomContentState deve essere serializzabile, il che significa che deve essere almeno aumentata con SerializableAttributee, facoltativamente, implementare ISerializable.

Importante

Quando si archiviano informazioni nello stato del contenuto personalizzato, non è possibile archiviare riferimenti all'istanza della pagina per cui si ricorda lo stato se non si vuole che il contenuto venga conservato in memoria. Ciò impedisce macchine virtuali Windows di rilasciare l'istanza della pagina e sconfigge lo scopo del comportamento predefinito della cronologia di spostamento. Se è necessario eseguire questa operazione, è consigliabile usare KeepAlive invece .

Costruttori

Nome Descrizione
CustomContentState()

Inizializza una nuova istanza della classe CustomContentState.

Proprietà

Nome Descrizione
JournalEntryName

Ottiene il nome del contenuto archiviato nella cronologia di navigazione. Il valore di viene visualizzato dall'interfaccia JournalEntryNameutente di NavigationWindow navigazione del browser , Framee .

Metodi

Nome Descrizione
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
Replay(NavigationService, NavigationMode)

Chiamato per riapplicare lo stato a una parte di contenuto quando si verifica la navigazione.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche