CustomContentState Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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üketimini önlemek için tasarlanmıştır. Sonuç olarak, içeriğin durumu bir gezintiden diğerine anımsanmıyor. Ancak, WPF bir özel durum parçasını bir içerik parçası için gezinti geçmişi girişiyle 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:
AddBackEntry Çağrılır:
NavigatingCancelEventArgs.Content Aşağıdaki olaylardan birinin tetiklendiğinde ayar:
Özel durumun kendisiyle ilişkilendirilmesi istenen sınıfı uygulayarak IProvideCustomContentState .
Note
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 bir CustomContentState nesnesinin onunla ilişkili olup olmadığını denetler. Bu durumda, özel Replay nesnenin önceki gezintiden hatırlamış olduğu durumu uygulamasına izin vermek için çağrısında CustomContentState bulunur.
Özel CustomContentState sınıf, nesnenin ilişkilendirildiği JournalEntryName gezinti geçmişi girdisi için görünen adı değiştirmek için geçersiz kılabilirCustomContentState. Döndüren JournalEntryName değer, çeşitli gezginlerin (tarayıcı, NavigationWindowveya Frame) gezinti kullanıcı arabiriminden görülebilir.
öğesinden CustomContentState türetilen bir sınıf seri hale getirilebilir olmalıdır; bu da en azından ile SerializableAttributegenişletilmesi ve isteğe bağlı olarak uygulaması ISerializablegerektiği anlamına gelir.
Important
Bilgileri özel içerik durumunda depoladığınızda, içeriğin bellekte tutulmasını istemiyorsanız, durumunu anımsadığınız sayfanın örneğine yönelik başvuruları depolayamazsınız. Bu, WPF sayfa örneğini yayımlaması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
| Name | Description |
|---|---|
| CustomContentState() |
CustomContentState sınıfının yeni bir örneğini başlatır. |
Özellikler
| Name | Description |
|---|---|
| JournalEntryName |
Gezinti geçmişinde depolanan içeriğin adını alır. değeri JournalEntryName , NavigationWindowve tarayıcı gezinti kullanıcı arabiriminden Framegörüntülenir. |
Yöntemler
| Name | Description |
|---|---|
| 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() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
| MemberwiseClone() |
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
| Replay(NavigationService, NavigationMode) |
Gezinti gerçekleştiğinde bir içerik parçasına yeniden uygulamak için çağrılır. |
| ToString() |
Geçerli nesneyi temsil eden bir dize döndürür. (Devralındığı yer: Object) |