You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET MAUI应用中导航参数留存机制的疑问

.NET MAUI页面导航后数据留存机制解答

你的猜测完全正确,具体机制如下:

  • .NET MAUI的导航系统基于**导航栈(Navigation Stack)**管理页面实例:当你从一个页面跳转到下一个页面时,原页面的实例会被完整保留在导航栈中,并不会被销毁。
  • 你打开CustomerProfilePage时传入的Customer对象,已经被该页面实例(或其绑定的ViewModel)持有(比如赋值给了页面的属性、ViewModel的字段)。跳转到CustomerTransactionsPage的过程中,CustomerProfilePage的实例始终存在于导航栈内,所有已加载的数据和状态都会被留存。
  • 从CustomerTransactionsPage返回时,框架只是将当前页面从导航栈顶部弹出,激活栈中原本存在的CustomerProfilePage实例——此时页面之前持有的Customer数据自然还在,不需要重新传参。

额外补充:

  • 只有当页面实例被从导航栈中移除(比如调用PopToRootAsync、RemovePage),或者因系统内存不足被回收时,页面的状态和数据才会丢失。
  • 模态页面(通过PushModalAsync打开)的返回机制同理,模态栈中的页面实例也会被完整保留。

内容的提问来源于stack exchange,提问作者Sam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 02:13:11