IProvideCustomContentState Интерфейс

Определение

Реализуется классом, которому требуется добавить пользовательское состояние в запись журнала переходов для содержимого, перед тем как будет выполнен переход от этого содержимого.Implemented by a class that needs to add custom state to the navigation history entry for content before the content is navigated away from.

public interface class IProvideCustomContentState
public interface IProvideCustomContentState
type IProvideCustomContentState = interface
Public Interface IProvideCustomContentState

Комментарии

IProvideCustomContentStateпозволяет связать элемент пользовательского состояния, реализованного как пользовательский CustomContentState класс, с записью журнала навигации для содержимого, с которого было выполнено перемещение.IProvideCustomContentState allows you to associate a piece of custom state, implemented as a custom CustomContentState class, with the navigation history entry for content that has been navigated away from.

Пользовательское состояние также можно связать таким образом, используя следующее:Custom state can also be associated in this way by using the following:

Необходимо реализовать IProvideCustomContentState при добавлении пользовательского состояния в журнал навигации путем вызова аддбаккентри, иначе журнал переходов будет работать неправильно. Рассмотрим следующие шаги:You must implement IProvideCustomContentState when you add custom state to navigation history by calling AddBackEntry, otherwise navigation history will not function correctly; consider the following steps:

  1. Аддбаккентри вызывается для связывания пользовательского состояния с текущим содержимым.AddBackEntry is called to associate a custom state with the current content.

  2. Выполняется переход к записи журнала навигации, и Replay метод пользовательского состояния вызывается, а состояние применяется к содержимому.The navigation history entry is navigated back to, and the Replay method of the custom state is called, and the state is applied to the content.

  3. Предыдущее содержимое переходит в журнал переходов вперед.The previous content is navigated to in forward navigation history.

  4. Выполняется переход к записи журнала навигации, но пользовательское состояние не было сохранены с момента последнего перехода к записи журнала переходов, с которой он связан.The navigation history entry is navigated back to, but the custom state has not been retained since the last time the navigation history entry it was associated with was navigated to.

Это поведение по умолчанию, так как состояние, которое изначально записывается в пользовательское состояние, может измениться после добавления в журнал переходов.This is the default behavior because the state that is initially recorded in custom state may change after it was added to navigation history. Если к объекту пользовательского состояния выполняется переход к и применено его состояние, прежде чем некоторые аспекты состояния изменяются перед переходом к записи в журнале переходов, изменение состояния не может быть отражено в объекте пользовательского состояния.If the custom state object is navigated back to and its state is applied, before some aspect about the state changes before the entry in navigation history is navigated to, the change in state cannot be reflected in the custom state object. Кроме того AddBackEntry , нельзя явно вызвать, чтобы добавить новый объект пользовательского состояния, отражающий изменения состояния.Furthermore, AddBackEntry can't be explicitly called to add a new custom state object that reflects the state changes. Следовательно, чтобы гарантировать, что текущее состояние для конкретной навигации всегда сохраняется в журнале навигации, GetContentState вызывается.Consequently, to ensure the current state for a particular navigation is always stored in navigation history, GetContentState is called.

Важно!

При хранении сведений в пользовательском состоянии содержимого нельзя хранить ссылки на экземпляр страницы, для которой запоминаются состояния.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. Это не 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, you might consider using KeepAlive instead.

Методы

GetContentState()

Возвращает экземпляр пользовательского класса состояния, связанный с содержимым в журнале переходов.Returns an instance of a custom state class that is to be associated with content in navigation history.

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