当前位置: 首页 > news >正文

Prism框架中`IConfirmNavigationRequest` 导航

在Prism框架中,IConfirmNavigationRequest是导航相关的核心接口(继承自INavigationAware),以下这四个方法是Prism导航生命周期的关键回调,用于精细控制ViewModel的导航行为。下面逐一拆解每个方法的作用、触发时机和使用场景:

先明确接口继承关系

IConfirmNavigationRequest → INavigationAware(包含 IsNavigationTarget/OnNavigatedFrom/OnNavigatedTo)

也就是说:

  • INavigationAware是基础导航接口,定义了导航的“基础生命周期”;
  • IConfirmNavigationRequest是增强接口,额外提供“导航确认”能力(防止意外导航)。

1. IsNavigationTarget(NavigationContext navigationContext)

核心作用

判断当前ViewModel实例是否复用,用于“导航复用”控制(Prism默认会复用ViewModel实例)。

触发时机

当导航到已存在的目标视图/ViewModel时触发(比如从A页面再次导航到已打开的B页面)。

返回值含义

  • true:复用当前ViewModel实例(不创建新实例,仅触发OnNavigatedTo);
  • false:销毁当前实例,创建新的ViewModel实例。

典型场景

  • 列表页→详情页→返回列表页:希望列表页保持之前的筛选/滚动状态 → 返回true
  • 每次导航到页面都需要全新数据 → 返回false

示例代码

// 示例:每次导航都创建新实例(不复用)publicboolIsNavigationTarget(NavigationContextnavigationContext){returnfalse;}

2. OnNavigatedTo(NavigationContext navigationContext)

核心作用

导航进入当前页面/ViewModel时执行,是“页面加载后初始化数据”的核心方法。

触发时机

  • 首次导航到该ViewModel(新实例创建后);
  • 复用ViewModel时(IsNavigationTarget返回true);
  • 从其他页面返回当前页面时。

关键能力

通过navigationContext.Parameters获取导航参数(比如从上一页传递的ID、筛选条件)。

典型场景

  • 加载页面数据(如查询列表、初始化表单);
  • 接收上一页传递的参数;
  • 注册事件、启动定时器等。

示例代码

publicvoidOnNavigatedTo(NavigationContextnavigationContext){// 获取导航参数(比如从上一页传的PTId)if(navigationContext.Parameters.TryGetValue<int>("PTId",
http://www.cnnetsun.cn/news/137783.html

相关文章:

  • win10 - 删除非法命名的文件夹的方法
  • 必看!2025年单北斗GNSS形变监测高口碑产品排行榜
  • 【计网】网络分层模型和http协议
  • Kotaemon在华为云上的部署实践:全流程记录
  • 校园便利平台|基于springboot + vue校园便利平台系统(源码+数据库+文档)
  • 38、Linux 脚本编程:bc 计算器、数组与特殊技巧
  • 揭秘高亮车灯升级2025年值得推荐的TOP8车灯产品
  • WSL2 / Ubuntu 下用 SDKMAN 管理多版本 Java(项目级切换,真香)
  • 从“幻觉”到“诚实”:OpenAI 如何重新定义大模型的不靠谱问题
  • 高精度宽频段VG7050CDN压控晶体振荡器(VCXO),适用于通信与GPS设备等
  • 重塑艺术“原罪”?Nano Banana Pro 引入数字水印与归属协议:谷歌要给 AI 生图打上“DNA”标签?
  • 基于最优指派策略的弹道导弹目标数据关联算法
  • 通达信主图MACD
  • Mistral 3 模型解析与部署实战:从 Large 3 到 Mini-stral
  • 2025网络安全学习路线 非常详细 推荐学习
  • 测试必知:线上出现BUG,该怎么办!
  • 【C++】学生管理系统设计与实现丨SQLite数据库版本
  • 第55集科立分板机:PCB激光分板机的效率如何
  • 28、UNIX 终端操作与测试实用指南
  • 31、UNIX实用技巧:ASCII表与经典编辑器使用指南
  • 三大限流算法:滑动窗口、令牌桶、漏桶
  • # 深入浅出 Flutter:构建跨平台应用的利器
  • 40、深入了解UNIX系统管理:职责与求职指南
  • stm32毕设本科生任务书指导
  • 效率神器!QuickTextPaste 便携版:快速文本粘贴 + 预设管理全攻略
  • 向量在计算机图形学中的核心应用
  • SelectDB索引实战:从入门到精通,避开那些年我踩过的坑
  • 探秘常见机器人控制运动上位机源码:解锁多种运动算法
  • 9 个降AI率工具,继续教育学生必备!
  • 运用工具Postman快速导出python接口测试脚本