CustomContentState Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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:
AddBackEntry aanroepen:
Instellen NavigatingCancelEventArgs.Content wanneer een van de volgende gebeurtenissen wordt gegenereerd:
Door te implementeren op IProvideCustomContentState de klasse waaraan de aangepaste status moet worden gekoppeld.
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) |