IProvideCustomContentState 接口
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
由需要向内容导航历史记录条目添加自定义状态的类实现,然后才能离开内容。
public interface class IProvideCustomContentState
public interface IProvideCustomContentState
type IProvideCustomContentState = interface
Public Interface IProvideCustomContentState
注解
IProvideCustomContentState 允许将一段自定义状态(作为自定义 CustomContentState 类实现)与导航离开的内容的导航历史记录条目相关联。
还可以通过以下方式关联自定义状态:
调用 AddBackEntry:
在引发以下事件之一时设置 NavigatingCancelEventArgs.Content :
必须通过调用 IProvideCustomContentState 将自定义状态添加到导航历史记录时实现,否则导航历史记录将无法正常运行;请考虑以下步骤:
调用 AddBackEntry 将自定义状态与当前内容相关联。
导航历史记录条目将导航回去,并 Replay 调用自定义状态的方法,并将状态应用于内容。
在前一个导航历史记录中导航到上一个内容。
导航历史记录条目导航回去,但自上次导航到导航历史记录项以来,自定义状态尚未保留。
这是默认行为,因为最初以自定义状态记录的状态在添加到导航历史记录后可能会更改。 如果自定义状态对象导航回并应用其状态,在导航历史记录中的条目导航到之前的状态更改的某些方面,则状态更改不能反映在自定义状态对象中。 此外, AddBackEntry 无法显式调用以添加反映状态更改的新自定义状态对象。 因此,为了确保特定导航的当前状态始终存储在导航历史记录中, GetContentState 将调用。
Important
将信息存储在自定义内容状态时,无法存储对要记住其状态的页面实例的任何引用。 这可以防止WPF释放页面实例,并破坏默认导航历史记录行为的目的。 如果必须执行此操作,可以考虑改用 KeepAlive 。
方法
| 名称 | 说明 |
|---|---|
| GetContentState() |
返回要与导航历史记录中内容关联的自定义状态类的实例。 |