CustomContentState Klasa

Definicja

CustomContentState Umożliwia nawigowanie po różnych stanach pojedynczej zawartości źródłowej bez ponownego ładowania zawartości źródłowej dla każdej kolejnej nawigacji.

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
Dziedziczenie
CustomContentState
Atrybuty

Przykłady

Poniżej przedstawiono przykład implementacji CustomContentState , która zastępuje JournalEntryNameelement .

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

Uwagi

Domyślnie NavigationService nie przechowuje wystąpienia obiektu zawartości w historii nawigacji. Zamiast tego tworzy nowe wystąpienie obiektu zawartości za każdym razem, NavigationService gdy jest on nawigowany przy użyciu historii nawigacji. To zachowanie zostało zaprojektowane tak, aby uniknąć nadmiernego zużycia pamięci w przypadku przechodzenia do dużej liczby i dużych fragmentów zawartości. W związku z tym stan zawartości nie jest zapamiętowywane z jednej nawigacji do następnej. Jednak platforma WPF umożliwia skojarzenie elementu stanu niestandardowego z wpisem historii nawigacji dla elementu zawartości.

Stan niestandardowy skojarzony z wpisem historii nawigacji musi być klasą pochodzącą z klasy CustomContentState. Obiekt można skojarzyć CustomContentState z wpisem historii nawigacji przy użyciu jednej z następujących technik:

Uwaga

Jeśli wywołasz metodę AddBackEntry , musisz obsługiwać zdarzenie Nawigowanie lub zaimplementować metodę IProvideCustomContentState.

Po przejściu do wpisu historii nawigacji WPF sprawdza, czy jest z nim skojarzony obiekt niestandardowy CustomContentState . Jeśli tak, wywołuje Replay metodę , aby zezwolić obiektowi niestandardowemu CustomContentState na zastosowanie stanu zapamiętowanego z poprzedniej nawigacji.

Klasa niestandardowa CustomContentState może zastąpić JournalEntryName zmianę nazwy wyświetlanej dla wpisu historii nawigacji, z którym CustomContentState jest skojarzony obiekt. Zwracana wartość JournalEntryName jest widoczna w interfejsie użytkownika nawigacji różnych nawigatorów (Internet Explorer 7, NavigationWindow, Frame).

Klasa pochodząca z CustomContentState klasy musi być serializowana, co oznacza, że musi być przynajmniej rozszerzona o SerializableAttribute, i opcjonalnie zaimplementować ISerializable.

Ważne

W przypadku przechowywania informacji w stanie zawartości niestandardowej nie można przechowywać żadnych odwołań do wystąpienia strony, dla której zapamiętujesz stan, jeśli nie chcesz, aby zawartość została zachowana w pamięci. Zapobiega to zwolnieniu wystąpienia strony przez platformę WPF i eliminuje cel domyślnego zachowania historii nawigacji. Jeśli musisz to zrobić, rozważ użycie KeepAlive zamiast tego.

Konstruktory

CustomContentState()

Inicjuje nowe wystąpienie klasy CustomContentState.

Właściwości

JournalEntryName

Nazwa zawartości przechowywanej w historii nawigacji. Wartość jest wyświetlana z NavigationWindowinterfejsu JournalEntryName użytkownika nawigacji programu , Framei Windows Internet Explorer 7.

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
Replay(NavigationService, NavigationMode)

Wywoływane w celu ponownego zastosowania stanu do elementu zawartości w przypadku nawigacji.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy

Zobacz też