CustomContentState Třída

Definice

CustomContentState umožňuje procházet různé stavy jednoho zdrojového obsahu bez opětovného načtení zdrojového obsahu pro každou další navigaci.

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
Dědičnost
CustomContentState
Atributy

Příklady

Následuje příklad CustomContentState implementace, která přepíše 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

Poznámky

Ve výchozím nastavení NavigationService neukládá instanci objektu obsahu v historii navigace. NavigationService Místo toho vytvoří novou instanci objektu obsahu při každém přechodu pomocí historie navigace. Toto chování je navržené tak, aby se zabránilo nadměrné spotřebě paměti při přechodu na velké množství a velké části obsahu. V důsledku toho se stav obsahu nepamatuje z jedné navigace na další. WPF (Windows Presentation Foundation) ale poskytuje možnost přidružit kus vlastního stavu k položce historie navigace pro část obsahu.

Vlastní stav přidružený k položce historie navigace musí být třída, která je odvozena z CustomContentState. Objekt přidružíte CustomContentState k položce historie navigace pomocí některé z následujících technik:

Note

Pokud voláte AddBackEntry metoda, musíte zpracovat navigaci událost nebo implementovat IProvideCustomContentState.

Při přechodu na položku historie navigace WPF (Windows Presentation Foundation) zkontroluje, jestli je k němu přidružený vlastní objekt CustomContentState. Pokud ano, zavolá Replay , aby vlastní CustomContentState objekt mohl použít stav, který si zapamatoval z předchozí navigace.

Vlastní CustomContentState třída může přepsat JournalEntryName změnu názvu, který se zobrazí pro položku historie navigace, ke které CustomContentState je objekt přidružen. Hodnota, která se vrátí, JournalEntryName je viditelná z navigačního uživatelského rozhraní různých navigátorů (prohlížeč, NavigationWindownebo Frame).

Třída odvozená z CustomContentState musí být serializovatelná, což znamená, že musí být alespoň rozšířena o SerializableAttribute, a volitelně implementovat ISerializable.

Important

Při ukládání informací ve vlastním stavu obsahu nelze uložit žádné odkazy na instanci stránky, pro kterou si pamatujete stav, pokud nechcete, aby se obsah uchovál v paměti. To brání WPF (Windows Presentation Foundation) uvolnění instance stránky a porazí účel výchozího chování historie navigace. Pokud to musíte udělat, zvažte místo toho použití KeepAlive .

Konstruktory

Name Description
CustomContentState()

Inicializuje novou instanci CustomContentState třídy.

Vlastnosti

Name Description
JournalEntryName

Získá název obsahu, který je uložen v historii navigace. Hodnota JournalEntryName je zobrazena z NavigationWindow, Framea prohlížeče navigační uživatelské rozhraní.

Metody

Name Description
Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetType()

Získá Type aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
Replay(NavigationService, NavigationMode)

Volá se k opětovnému použití stavu části obsahu, když dojde k navigaci.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro

Viz také