CustomContentState Klass

Definition

CustomContentState gör det möjligt att navigera i olika tillstånd i ett enda källinnehåll utan att läsa in källinnehållet på nytt för varje efterföljande navigering.

public ref class CustomContentState abstract
[System.Serializable]
public abstract class CustomContentState
[<System.Serializable>]
type CustomContentState = class
Public MustInherit Class CustomContentState
Arv
CustomContentState
Attribut

Exempel

Följande är ett exempel på en CustomContentState implementering som åsidosätter 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

Kommentarer

Som standard NavigationService lagrar inte en instans av ett innehållsobjekt i navigeringshistoriken. NavigationService Skapar i stället en ny instans av innehållsobjektet varje gång det navigeras till med hjälp av navigeringshistorik. Det här beteendet är utformat för att undvika överdriven minnesförbrukning när stora mängder och stora delar av innehållet navigeras till. Det innebär att innehållets tillstånd inte kommer ihåg från en navigering till en annan. Men WPF ger möjlighet att associera ett anpassat tillstånd med navigeringshistorikposten för ett innehåll.

Anpassat tillstånd som är associerat med en navigeringshistorikpost måste vara en klass som härleds från CustomContentState. Du associerar ett CustomContentState objekt med en navigeringshistorikpost med hjälp av någon av följande tekniker:

Note

Om du anropar metoden AddBackEntry måste du hantera händelsen Navigera eller implementera IProvideCustomContentState.

När navigeringshistorikposten navigeras till kontrollerar WPF om ett anpassat CustomContentState objekt är associerat med det. I så fall anropas Replay det för att tillåta att det anpassade CustomContentState objektet tillämpar det tillstånd som det kom ihåg från föregående navigering.

En anpassad CustomContentState klass kan åsidosätta JournalEntryName för att ändra namnet som visas för navigeringshistorikposten som CustomContentState objektet är associerat med. Värdet som JournalEntryName returneras visas från navigeringsgränssnittet för de olika navigatörerna (webbläsare, NavigationWindoweller Frame).

En klass som härleds från CustomContentState måste vara serialiserbar, vilket innebär att den åtminstone måste utökas med SerializableAttributeoch eventuellt implementera ISerializable.

Important

När du lagrar information i anpassat innehållstillstånd kan du inte lagra några referenser till instansen av sidan som du kommer ihåg tillstånd för om du inte vill att innehållet ska behållas i minnet. Detta förhindrar WPF från att släppa sidinstansen och motverkar syftet med standardbeteendet för navigeringshistorik. Om du måste göra detta bör du överväga att använda KeepAlive i stället.

Konstruktorer

Name Description
CustomContentState()

Initierar en ny instans av CustomContentState klassen.

Egenskaper

Name Description
JournalEntryName

Hämtar namnet på innehållet som lagras i navigeringshistoriken. Värdet för JournalEntryName visas från NavigationWindow, Frameoch webbläsarnavigeringsgränssnittet.

Metoder

Name Description
Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
Replay(NavigationService, NavigationMode)

Anropas för att återappa tillstånd till en del av innehållet när navigeringen sker.

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Gäller för

Se även