CustomContentState Klas

Definitie

CustomContentState maakt het mogelijk om door verschillende statussen van één deel van de broninhoud te navigeren zonder de broninhoud opnieuw te laden voor elke volgende navigatie.

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

Voorbeelden

Hier volgt een voorbeeld van een CustomContentState implementatie die wordt overschreven 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

Opmerkingen

NavigationService Standaard wordt geen exemplaar van een inhoudsobject opgeslagen in de navigatiegeschiedenis. In plaats NavigationService daarvan maakt u een nieuw exemplaar van het inhoudsobject telkens wanneer het wordt genavigeerd met behulp van de navigatiegeschiedenis. Dit gedrag is ontworpen om overmatig geheugenverbruik te voorkomen wanneer grote aantallen en grote stukken inhoud naartoe worden genavigeerd. De status van de inhoud wordt daarom niet onthouden van de ene navigatie naar de volgende. WPF biedt echter de mogelijkheid om een stukje aangepaste status te koppelen aan de vermelding van de navigatiegeschiedenis voor een deel van de inhoud.

De aangepaste status die is gekoppeld aan een navigatiegeschiedenisvermelding, moet een klasse zijn die is afgeleid van CustomContentState. U koppelt een CustomContentState object aan een navigatiegeschiedenisvermelding met behulp van een van de volgende technieken:

Note

Als u de methode AddBackEntry aanroept, moet u de gebeurtenis Navigeren afhandelen of implementeren IProvideCustomContentState.

Wanneer de navigatiegeschiedenisvermelding naartoe wordt genavigeerd, controleert WPF of er een aangepast CustomContentState-object aan is gekoppeld. Zo ja, dan wordt aangeroepen Replay om het aangepaste CustomContentState object toe te staan de status toe te passen die het heeft onthouden van de vorige navigatie.

Een aangepaste CustomContentState klasse kan de JournalEntryName naam wijzigen die wordt weergegeven voor de navigatiegeschiedenisvermelding waaraan het CustomContentState object is gekoppeld. De waarde die JournalEntryName wordt geretourneerd, is zichtbaar in de navigatiegebruikersinterface van de verschillende navigators (browser, NavigationWindowof Frame).

Een klasse die is afgeleid van CustomContentState , moet serialiseerbaar zijn, wat betekent dat deze ten minste moet worden uitgebreid met SerializableAttributeen optioneel moet worden geïmplementeerd ISerializable.

Important

Wanneer u gegevens opslaat in de status van aangepaste inhoud, kunt u geen verwijzingen opslaan naar het exemplaar van de pagina waarvoor u de status onthoudt als u niet wilt dat de inhoud in het geheugen wordt bewaard. Dit voorkomt dat WPF het pagina-exemplaar vrijgeeft en het doel van het standaardgedrag van de navigatiegeschiedenis verslaat. Als u dit moet doen, kunt u overwegen in plaats daarvan te gebruiken KeepAlive .

Constructors

Name Description
CustomContentState()

Initialiseert een nieuw exemplaar van de CustomContentState klasse.

Eigenschappen

Name Description
JournalEntryName

Hiermee haalt u de naam op voor de inhoud die is opgeslagen in de navigatiegeschiedenis. De waarde wordt JournalEntryName weergegeven vanuit NavigationWindowde Framegebruikersinterface voor browsernavigatie.

Methoden

Name Description
Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
Replay(NavigationService, NavigationMode)

Wordt aangeroepen om de status opnieuw toe te geven aan een deel van de inhoud wanneer de navigatie plaatsvindt.

ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Van toepassing op

Zie ook