CustomContentState CustomContentState CustomContentState CustomContentState Class

Определение

CustomContentState обеспечивает возможность перехода между разными состояниями одного фрагмента исходного содержимого без повторной загрузки исходного содержимого для каждого перехода.CustomContentState enables the ability to navigate through different states of a single piece of source content without reloading the source content for each subsequent navigation.

public ref class CustomContentState abstract
[System.Serializable]
public abstract class CustomContentState
type CustomContentState = class
Public MustInherit Class CustomContentState
Наследование
CustomContentStateCustomContentStateCustomContentStateCustomContentState
Атрибуты

Примеры

Ниже приведен пример CustomContentState реализации, переопределяющей JournalEntryName.The following is an example of a CustomContentState implementation that overrides 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

Комментарии

По умолчанию NavigationService не сохраняет экземпляр объекта содержимого в журнале переходов.By default, NavigationService does not store an instance of a content object in navigation history. Вместо этого NavigationService создает новый экземпляр объекта содержимого при каждом переходе к с помощью журнала навигации.Instead, NavigationService creates a new instance of the content object each time it is navigated to by using navigation history. Такое поведение предназначено для предотвращения чрезмерного потребления памяти при переходе к большим числам и большим фрагментам содержимого.This behavior is designed to avoid excessive memory consumption when large numbers and large pieces of content are being navigated to. Следовательно, состояние содержимого не запоминается при переходе к следующему.Consequently, the state of the content is not remembered from one navigation to the next. WPFWPF Однако предоставляет возможность связать элемент пользовательского состояния с записью журнала переходов для фрагмента содержимого.However, WPFWPF provides the ability to associate a piece of custom state with the navigation history entry for a piece of content.

Пользовательское состояние, связанное с записью журнала переходов, должно быть классом, CustomContentStateпроизводным от.Custom state that is associated with a navigation history entry must be a class that derives from CustomContentState. Вы связываете CustomContentState объект с записью журнала переходов с помощью одного из следующих методов:You associate a CustomContentState object with a navigation history entry by using one of the following techniques:

Примечание

При вызове метода аддбаккентри необходимо выполнить обработку события навигации или реализовать IProvideCustomContentState.If you call the AddBackEntry method, you must handle the Navigating event or implement IProvideCustomContentState.

При переходе к записи журнала переходов проверяет, WPFWPF связан ли с ним пользовательский CustomContentState объект.When the navigation history entry is navigated to, WPFWPF checks to see if a custom CustomContentState object is associated with it. Если это так, он Replay вызывает метод, чтобы CustomContentState разрешить пользовательскому объекту применить состояние, которое оно было сохранено из предыдущей навигации.If so, it calls Replay to allow the custom CustomContentState object to apply the state it remembered from the previous navigation.

Настраиваемый CustomContentState класс может переопределять JournalEntryName , чтобы изменить имя, которое отображается для записи CustomContentState журнала навигации, с которой связан объект.A custom CustomContentState class can override JournalEntryName to change the name that appears for the navigation history entry to which the CustomContentState object is associated. JournalEntryName Возвращаемое значение видно из навигации ИПUI по различным навигаторам (Internet Explorer 7Internet Explorer 7, NavigationWindow, Frame).The value that JournalEntryName returns is visible from the navigation ИПUI of the various navigators (Internet Explorer 7Internet Explorer 7, NavigationWindow, Frame).

Класс, производный от CustomContentState , должен быть сериализуемым, что означает SerializableAttribute, что он должен по крайней мере дополняться и ISerializableпри необходимости реализовывать.A class that derives from CustomContentState must be serializable, which means it must at least be augmented with SerializableAttribute, and optionally implement ISerializable.

Важно!

При хранении сведений в пользовательском состоянии содержимого нельзя хранить ссылки на экземпляр страницы, для которой запоминаются состояния, если содержимое не должно храниться в памяти.When you store information in custom content state, you cannot store any references to the instance of the page for which you are remembering state if don't want the content to be retained in memory. Это не WPFWPF приводит к освобождению экземпляра страницы и не нарушает назначение поведения журнала навигации по умолчанию.This prevents WPFWPF from releasing the page instance, and defeats the purpose of the default navigation history behavior. Если это необходимо сделать, рассмотрите возможность KeepAlive использования вместо этого.If you must do this, consider using KeepAlive instead.

Конструкторы

CustomContentState() CustomContentState() CustomContentState() CustomContentState()

Инициализирует новый экземпляр класса CustomContentState.Initializes a new instance of the CustomContentState class.

Свойства

JournalEntryName JournalEntryName JournalEntryName JournalEntryName

Имя для сохраняемого в журнале переходов содержимого.The name for the content that is stored in navigation history. Значение JournalEntryName отображается в NavigationWindow, Frame и в навигационном Windows Internet Explorer 7Windows Internet Explorer 7ИПUI.The value of JournalEntryName is displayed from NavigationWindow, Frame, and Windows Internet Explorer 7Windows Internet Explorer 7 navigation ИПUI.

Методы

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
Replay(NavigationService, NavigationMode) Replay(NavigationService, NavigationMode) Replay(NavigationService, NavigationMode) Replay(NavigationService, NavigationMode)

Вызывается для повторного применения состояния к фрагменту содержимого при выполнении перехода.Called to reapply state to a piece of content when navigation occurs.

ToString() ToString() ToString() ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Inherited from Object)

Применяется к

Дополнительно