CustomContentState Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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:
Chiamata di AddBackEntry:
Impostazione NavigatingCancelEventArgs.Content quando viene generato uno degli eventi seguenti:
IProvideCustomContentState Implementando nella classe che vuole che lo stato personalizzato sia associato.
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) |