IProvideCustomContentState Интерфейс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Реализуется классом, которому требуется добавить пользовательское состояние в запись журнала переходов для содержимого, перед тем как будет выполнен переход от этого содержимого.
public interface class IProvideCustomContentState
public interface IProvideCustomContentState
type IProvideCustomContentState = interface
Public Interface IProvideCustomContentState
Комментарии
IProvideCustomContentState позволяет связать элемент пользовательского состояния, реализованный как пользовательский CustomContentState класс, с записью журнала навигации для содержимого, которое было удалено.
Пользовательское состояние также можно связать таким образом, используя следующее:
Вызов AddBackEntry:
Установка NavigatingCancelEventArgs.Content при возникновении одного из следующих событий:
Необходимо реализовать IProvideCustomContentState при добавлении пользовательского состояния в журнал навигации путем вызова AddBackEntry, в противном случае журнал навигации будет работать неправильно. Рассмотрим следующие действия:
Вызывается AddBackEntry , чтобы связать пользовательское состояние с текущим содержимым.
Запись журнала навигации возвращается назад и Replay вызывается метод настраиваемого состояния, а состояние применяется к содержимому.
Предыдущее содержимое перемещается в журнале переходов вперед.
Запись журнала навигации возвращается обратно, но пользовательское состояние не сохраняется с момента последнего перехода к записи журнала навигации, к которой она была связана.
Это поведение по умолчанию, так как состояние, изначально записанное в настраиваемом состоянии, может измениться после добавления в журнал навигации. Если пользовательский объект состояния перемещается обратно и применяется его состояние, прежде чем некоторые аспекты изменения состояния перед переходом к записи в журнале навигации, изменение состояния не может быть отражено в объекте пользовательского состояния. Кроме того, AddBackEntry нельзя явно вызвать для добавления нового объекта пользовательского состояния, который отражает изменения состояния. Следовательно, чтобы убедиться, что текущее состояние определенной навигации всегда хранится в журнале навигации, GetContentState вызывается.
Важно!
При хранении сведений в пользовательском состоянии содержимого нельзя хранить ссылки на экземпляр страницы, для которой вы запоминаете состояние. Это предотвращает освобождение экземпляра страницы WPF и предотвращает назначение поведения журнала навигации по умолчанию. Если это необходимо сделать, можно использовать KeepAlive вместо этого.
Методы
GetContentState() |
Возвращает экземпляр пользовательского класса состояния, связанный с содержимым в журнале переходов. |