Bagikan melalui


CustomContentState Kelas

Definisi

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:

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)

Berlaku untuk

Lihat juga