CustomContentState Classe

Definizione

CustomContentState consente di navigare tra stati diversi di una sola parte di contenuto di origine senza che sia necessario 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 che esegue l'override JournalEntryNamedi CustomContentState .

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 vengono spostati grandi numeri e grandi parti di contenuto. Di conseguenza, lo stato del contenuto non viene memorizzato da uno spostamento al successivo. WPF offre tuttavia la possibilità di associare una parte 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:

Nota

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

Quando si passa alla voce della cronologia di navigazione, WPF verifica se è associato un oggetto personalizzato CustomContentState . In tal caso, chiama Replay per consentire all'oggetto personalizzato CustomContentState di applicare lo stato memorizzato dallo 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 navigatori (Internet Explorer 7, NavigationWindow, Frame).

Una classe che deriva da CustomContentState deve essere serializzabile, ovvero deve essere aumentata almeno 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 sta memorizzando lo stato se non si vuole che il contenuto venga conservato in memoria. Ciò impedisce a WPF 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

CustomContentState()

Inizializza una nuova istanza della classe CustomContentState.

Proprietà

JournalEntryName

Nome del contenuto archiviato nella cronologia di navigazione. Il valore di JournalEntryName viene visualizzato da NavigationWindow, Framee Windows'interfaccia utente di spostamento di Internet Explorer 7.

Metodi

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 l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
Replay(NavigationService, NavigationMode)

Chiamato per applicare nuovamente 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