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 вызывается.

Important

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

Методы

Имя Описание
GetContentState()

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

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