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 вызывается.
Important
При хранении сведений в пользовательском состоянии содержимого нельзя хранить ссылки на экземпляр страницы, для которой вы запоминаете состояние. Это позволяет WPF освободить экземпляр страницы и победить цель поведения журнала навигации по умолчанию. Если это необходимо сделать, можно использовать KeepAlive вместо этого.
Методы
| Имя | Описание |
|---|---|
| GetContentState() |
Возвращает экземпляр пользовательского класса состояния, который должен быть связан с содержимым в журнале навигации. |