CustomContentState Sınıf

Tanım

CustomContentState , sonraki her gezinti için kaynak içeriği yeniden yüklemeden tek bir kaynak içeriğin farklı durumlarına gitme olanağı sağlar.

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
Devralma
CustomContentState
Öznitelikler

Örnekler

Aşağıda, öğesini geçersiz kılan bir CustomContentState uygulama örneği verilmiştir 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

Açıklamalar

Varsayılan olarak, NavigationService içerik nesnesinin bir örneğini gezinti geçmişinde depolamaz. Bunun yerine, NavigationService gezinti geçmişini kullanarak içerik nesnesinin her gidildiğinde yeni bir örneğini oluşturur. Bu davranış, çok sayıda ve büyük içerik parçalarına gidilirken aşırı bellek tüketiminden kaçınmak için tasarlanmıştır. Sonuç olarak, içeriğin durumu bir gezintiden diğerine anımsanmıyor. Ancak WPF, bir içerik parçası için gezinti geçmişi girişiyle özel durum parçası ilişkilendirme olanağı sağlar.

Gezinti geçmişi girişiyle ilişkili özel durum, öğesinden CustomContentStatetüretilen bir sınıf olmalıdır. Aşağıdaki tekniklerden birini kullanarak bir CustomContentState nesneyi gezinti geçmişi girişiyle ilişkilendirirsiniz:

Not

AddBackEntry yöntemini çağırırsanız, Gezinme olayını işlemeniz veya uygulamanız IProvideCustomContentStategerekir.

Gezinti geçmişi girdisine gidildiğinde WPF, özel CustomContentState bir nesnenin onunla ilişkilendirilmiş olup olmadığını denetler. Bu durumda, özel CustomContentState nesnenin önceki gezintide anımsanmış olduğu durumu uygulamasına izin vermek için öğesini çağırırReplay.

Özel CustomContentState bir sınıf, nesnenin ilişkilendirildiği CustomContentState gezinti geçmişi girdisi için görünen adı değiştirmek için geçersiz kılabilirJournalEntryName. Döndüren JournalEntryName değer, çeşitli gezginlerin gezinti kullanıcı arabiriminden görünür (tarayıcı, NavigationWindowveya Frame).

öğesinden CustomContentState türetilen bir sınıf serileştirilebilir olmalıdır; bu da en azından ile SerializableAttributegenişletilmesi ve isteğe bağlı olarak uygulaması ISerializablegerektiği anlamına gelir.

Önemli

Bilgileri özel içerik durumunda depoladığınızda, içeriğin bellekte tutulmasını istemiyorsanız, durumunu hatırladığınız sayfanın örneğine yönelik başvuruları depolayamazsınız. Bu, WPF'nin sayfa örneğini serbest bırakmasını engeller ve varsayılan gezinti geçmişi davranışının amacını alt eder. Bunu yapmanız gerekiyorsa, bunun yerine kullanmayı KeepAlive göz önünde bulundurun.

Oluşturucular

CustomContentState()

CustomContentState sınıfının yeni bir örneğini başlatır.

Özellikler

JournalEntryName

Gezinti geçmişinde depolanan içeriğin adını alır. değeri JournalEntryName , Frameve tarayıcı gezinti kullanıcı arabiriminden NavigationWindowgörüntülenir.

Yöntemler

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
Replay(NavigationService, NavigationMode)

Gezinti gerçekleştiğinde bir içerik parçasını yeniden uygulamak için çağrılır.

ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır

Ayrıca bkz.