IProvideCustomContentState Интерфейс

Определение

Реализуется классом, которому требуется добавить пользовательское состояние в запись журнала переходов для содержимого, перед тем как будет выполнен переход от этого содержимого.

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

Комментарии

IProvideCustomContentState позволяет связать элемент пользовательского состояния, реализованный как пользовательский CustomContentState класс, с записью журнала навигации для содержимого, которое было удалено.

Пользовательское состояние также можно связать таким образом, используя следующее:

Необходимо реализовать IProvideCustomContentState при добавлении пользовательского состояния в журнал навигации путем вызова AddBackEntry, в противном случае журнал навигации будет работать неправильно. Рассмотрим следующие действия:

  1. Вызывается AddBackEntry , чтобы связать пользовательское состояние с текущим содержимым.

  2. Запись журнала навигации возвращается назад и Replay вызывается метод настраиваемого состояния, а состояние применяется к содержимому.

  3. Предыдущее содержимое перемещается в журнале переходов вперед.

  4. Запись журнала навигации возвращается обратно, но пользовательское состояние не сохраняется с момента последнего перехода к записи журнала навигации, к которой она была связана.

Это поведение по умолчанию, так как состояние, изначально записанное в настраиваемом состоянии, может измениться после добавления в журнал навигации. Если пользовательский объект состояния перемещается обратно и применяется его состояние, прежде чем некоторые аспекты изменения состояния перед переходом к записи в журнале навигации, изменение состояния не может быть отражено в объекте пользовательского состояния. Кроме того, AddBackEntry нельзя явно вызвать для добавления нового объекта пользовательского состояния, который отражает изменения состояния. Следовательно, чтобы убедиться, что текущее состояние определенной навигации всегда хранится в журнале навигации, GetContentState вызывается.

Важно!

При хранении сведений в пользовательском состоянии содержимого нельзя хранить ссылки на экземпляр страницы, для которой вы запоминаете состояние. Это предотвращает освобождение экземпляра страницы WPF и предотвращает назначение поведения журнала навигации по умолчанию. Если это необходимо сделать, можно использовать KeepAlive вместо этого.

Методы

GetContentState()

Возвращает экземпляр пользовательского класса состояния, связанный с содержимым в журнале переходов.

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