CustomContentState Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
CustomContentState memungkinkan kemampuan untuk menavigasi melalui status yang berbeda dari satu bagian konten sumber tanpa memuat ulang konten sumber untuk setiap navigasi berikutnya.
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
- Warisan
-
CustomContentState
- Atribut
Contoh
Berikut ini adalah contoh CustomContentState implementasi yang mengambil alih 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
Keterangan
Secara default, NavigationService tidak menyimpan instans objek konten dalam riwayat navigasi. Sebaliknya, NavigationService membuat instans baru objek konten setiap kali dinavigasi dengan menggunakan riwayat navigasi. Perilaku ini dirancang untuk menghindari konsumsi memori yang berlebihan ketika konten dalam jumlah besar dan konten besar sedang dinavigasi. Akibatnya, status konten tidak diingat dari satu navigasi ke navigasi berikutnya. Namun, WPF menyediakan kemampuan untuk mengaitkan bagian status kustom dengan entri riwayat navigasi untuk sepotong konten.
Status kustom yang terkait dengan entri riwayat navigasi harus merupakan kelas yang berasal dari CustomContentState. Anda mengaitkan CustomContentState objek dengan entri riwayat navigasi dengan menggunakan salah satu teknik berikut:
Memanggil AddBackEntry:
Pengaturan NavigatingCancelEventArgs.Content saat salah satu peristiwa berikut dinaikkan:
Dengan menerapkan IProvideCustomContentState pada kelas yang ingin status kustom dikaitkan dengannya.
Catatan
Jika Anda memanggil metode AddBackEntry , Anda harus menangani peristiwa Navigasi atau menerapkan IProvideCustomContentState.
Saat entri riwayat navigasi dinavigasi ke, WPF memeriksa untuk melihat apakah objek kustom CustomContentState terkait dengannya. Jika demikian, ia memanggil Replay untuk mengizinkan objek kustom CustomContentState menerapkan status yang diingatnya dari navigasi sebelumnya.
Kelas kustom CustomContentState dapat mengambil alih JournalEntryName untuk mengubah nama yang muncul untuk entri riwayat navigasi tempat CustomContentState objek dikaitkan. Nilai yang JournalEntryName dikembalikan terlihat dari UI navigasi berbagai navigator (browser, NavigationWindow, atau Frame).
Kelas yang berasal dari CustomContentState harus dapat diserialisasikan, yang berarti setidaknya harus ditambah dengan SerializableAttribute, dan secara opsional mengimplementasikan ISerializable.
Penting
Saat Anda menyimpan informasi dalam status konten kustom, Anda tidak dapat menyimpan referensi apa pun ke instans halaman yang Anda ingat statusnya jika tidak ingin konten dipertahankan dalam memori. Ini mencegah WPF merilis instans halaman, dan mengalahkan tujuan perilaku riwayat navigasi default. Jika Anda harus melakukan ini, pertimbangkan untuk menggunakan KeepAlive sebagai gantinya.
Konstruktor
CustomContentState() |
Menginisialisasi instans baru kelas CustomContentState. |
Properti
JournalEntryName |
Mendapatkan nama untuk konten yang disimpan dalam riwayat navigasi. Nilai JournalEntryName ditampilkan dari NavigationWindowUI navigasi browser , Frame, dan . |
Metode
Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
GetType() |
Mendapatkan instans Type saat ini. (Diperoleh dari Object) |
MemberwiseClone() |
Membuat salinan dangkal dari yang saat ini Object. (Diperoleh dari Object) |
Replay(NavigationService, NavigationMode) |
Dipanggil untuk menerapkan kembali status ke bagian konten saat navigasi terjadi. |
ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |