IProvideCustomContentState 接口

定义

由某类实现,该类需要在离开内容之前将自定义状态添加到内容的导航历史记录条目中。

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

注解

IProvideCustomContentState 允许将作为自定义类实现 CustomContentState 的自定义状态片段与已从其导航的内容的导航历史记录条目相关联。

还可以使用以下命令以这种方式关联自定义状态:

通过调用 AddBackEntry 将自定义状态添加到导航历史记录时,必须实现IProvideCustomContentState,否则导航历史记录将无法正常工作;请考虑以下步骤:

  1. 调用 AddBackEntry 以将自定义状态与当前内容相关联。

  2. 导航历史记录条目导航回,调用 Replay 自定义状态的 方法,并将状态应用于内容。

  3. 前面的内容在前进导航历史记录中导航到 。

  4. 导航历史记录条目导航回去,但自上次导航与导航历史记录条目关联的导航历史记录条目以来,自定义状态未保留。

这是默认行为,因为最初以自定义状态记录的状态在添加到导航历史记录后可能会更改。 如果自定义状态对象导航回并应用其状态,在导航历史记录中的条目导航到之前,有关状态的某些方面发生更改,则状态更改无法反映在自定义状态对象中。 此外, AddBackEntry 无法显式调用 来添加反映状态更改的新自定义状态对象。 因此,为了确保特定导航的当前状态始终存储在导航历史记录中, GetContentState 调用 。

重要

在自定义内容状态中存储信息时,无法存储对要记住其状态的页面实例的任何引用。 这可以防止 WPF 释放页面实例,并破坏默认导航历史记录行为的用途。 如果必须执行此操作,可以考虑改用 KeepAlive

方法

GetContentState()

返回一个要与导航历史记录中的内容关联的自定义状态类的实例。

适用于