.NET MAUI实战 Routing

1.详情

本章继续分享.NET MAUI中的路由,这个概念依旧是在Prism里存在过的概念。如果使用过Prism框架的小伙伴使用该机制上手速度是非常快的。接下来一起来看看什么是路由。

.NET 多平台应用 UI (.NET MAUI) Shell 包含基于 URI 的导航体验,该体验使用路由导航到应用中的任何页面,而无需遵循设置的导航层次结构。此外,它还能够向后导航,不必访问导航堆栈上的所有页面。

c52c35a754c774ab05a949892a29fd5a.png

本次分享内容:

1.路由导航

2.路由传值

2.详细内容

(1)路由导航

这里分享一个基础的路由使用大致分为两步:

1.路由注册

2.路由导航

MainPage.xaml.cs

04763c139081c6288a608acc597ebd12.png

public partial class MainPage : ContentPage
{public MainPage()
{InitializeComponent();Routing.RegisterRoute("Page1",typeof(NewPage1));Routing.RegisterRoute("Page2", typeof(NewPage2));}private void BtnPage2_Clicked(object sender, EventArgs e)
{Shell.Current.GoToAsync("Page1");}private void BtnPage1_Clicked(object sender, EventArgs e)
{Shell.Current.GoToAsync("Page2");}
}

NewPage2.xaml.cs

9f5153a30558e3d373d096aa16236846.png

public partial class NewPage1 : ContentPage
{public NewPage1()
{InitializeComponent();
}private void BtnGoback_Clicked(object sender, EventArgs e)
{Shell.Current.GoToAsync("..");}
}

(2)路由传值

MainPage.xaml.cs

public partial class MainPage : ContentPage
{public MainPage()
{InitializeComponent();Routing.RegisterRoute("Page1",typeof(NewPage1));Routing.RegisterRoute("Page2", typeof(NewPage2));}private void BtnPage2_Clicked(object sender, EventArgs e)
{//参数封装var navigationParameter = new Dictionary<string, object>{{ "TempMessage", "yo juster!" }};//第一个参数路由名称,第二个参数参数内容Shell.Current.GoToAsync("Page1", navigationParameter);}private void BtnPage1_Clicked(object sender, EventArgs e)
{Shell.Current.GoToAsync("Page2");}
}

NewPage1.xaml.cs

//需要继承IQueryAttributable接口,然后实现接收参数的方法
public partial class NewPage1 : ContentPage , IQueryAttributable
{public NewPage1()
{InitializeComponent();
}private void BtnGoback_Clicked(object sender, EventArgs e)
{Shell.Current.GoToAsync("..");}//接收参数实现public void ApplyQueryAttributes(IDictionary<string, object> query)
{//通过我们在MainPage封装好的参数字典。var msg = query["TempMessage"].ToString();DisplayAlert("Message",msg,"ok");
}
}

b1e7f1eea1f4a3c2c5eb3d694b065a4f.png

ref: https://docs.microsoft.com/zh-cn/dotnet/maui/fundamentals/shell/navigation

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/283089.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分享Web应用运行的细节问题:预编译提高网站性能、跟踪用户习惯和解决线程同步...

在这个文章里&#xff0c;我将分享一下在iOpenWorks.com这个网站试运行中碰到的若干问题和解决方案&#xff0c;这些问题包含了&#xff1a;&#xff08;1&#xff09;如何通过ASP.NET MVC预编译提高性能&#xff1b;&#xff08;2&#xff09;如何知道网站在运行中&#xff0c…

mondrain配置mysql_mondrian 4.7 源码部署(示例代码)

mondrian是一个开源的数据分析工程, 网上有关mondrian3.X的源码部署比较多, 有关4.X的部署较少. 目前官方推荐使用的时mondrian3.7的修订版, 可以再github上下载到最近更新维护的mondrian-master, 下载下来后基本上只需要按部就班的使用maven build一下就可以正常使用了, 如有问…

腾讯云DevOps技术揭秘:新时代运维重器Tencent Hub最佳实践

随着云计算和容器技术的发展以及微服务架构的兴起&#xff0c;服务能够实现细粒度的部署&#xff0c;维护和伸缩。在使开发人员能快速开发的同时&#xff0c;这些技术也给系统和应用的运维带来了更大的挑战。DevOps理念也应运而生&#xff0c;强调研发和运维的流程及工具的自动…

关于内存的划分和传引用传参数的区别

1.堆 2.栈 空间较小 3.全局 4.代码段 要搞懂每个区域放什么东西 堆 复杂类型栈 变量静 代复杂类型对象没有指针指的时候&#xff0c;堆中的内容垃圾回收1函数传对象的时候&#xff0c;其实是首先在堆里面开一个内存放对象属性内容&#xff0c;在栈里面开一个内存放一个变量&…

.Net CoreRabbitMQ消息存储可靠机制(下)

前言上篇讨论过消息投递和消息消费过程中如何确保可靠传输&#xff0c;也提及到消息到达RabbitMQ中到被消费前也需要可靠的留存&#xff0c;可因许多的不确定因素会影响着消息的存在与否。消息中转点生产者发送消息到RabbitMQ中&#xff0c;如果交换机根据自身类型和RoutingKey…

nginx安装及负载均衡配置

Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器&#xff0c;也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的&#xff0c;第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发…

java怎么获取该项目系统的参数_Java 获取系统参数

Java 获取系统参数2014/5/22 12:57:44 a920829018 程序员俱乐部 我要评论(0)摘要&#xff1a;通过System.getProperties()获取系统参数PropertiespropsSystem.getProperties();//系统属性System.out.println("Java的运行环境版本&#xff1a;"props.getProperty(&…

智能停车O2O 独角兽初现:“ETCP停车”获5000万美金A轮融资

日前&#xff0c;国内第一智能停车平台“ETCP停车”宣布完毕A轮融资&#xff0c;由源代码资本、SIG、易车网、经纬中国和商企界知名人士联合投资超过5000万美金。同一时候获悉&#xff0c;ETCP作为中国智能停车行业龙头老大&#xff0c;不仅是该行业的创建者和领军品牌&#xf…

没有人会觉得正则表达式难写

1. RegExp对象 JavaScript有两种方式实例化RegExp对象 字面量构造函数字面量 const reg /all/; console.log(reg); // /all/ This is all I have..replace(reg, ALL); // This is ALL I have. 复制代码构造函数 const reg new RegExp(all); console.log(reg); // /all…

ASP.NET MVC使用Bootstrap系统(2)——使用Bootstrap CSS和HTML元素

阅读目录 Bootstrap 栅格&#xff08;Grid&#xff09;系统Bootstrap HTML元素Bootstrap 验证样式ASP.NET MVC创建包含Bootstrap样式编辑模板小结Bootstrap提供了一套丰富CSS设置、HTML元素以及高级的栅格系统来帮助开发人员快速布局网页。所有的CSS样式和HTML元素与移动设备优…

sublime-text3按tab跳出括号

功能 通过按tab自动跳过右括号,右引号,虽然也可以按右方向键,但离得太远按起来太麻烦 在首选项->按键绑定里添加: { "keys": ["tab"], "command": "move", "args": {"by": "characters", "forw…

VS2017调试闪退之Chrome

原文:VS2017调试闪退之Chrome巨硬build后发了15.7.1满载期待的升级了。。结果NM泪奔................... 为啥 泪奔&#xff1f; 使用Chrome 调试闪退&#xff0c;MMP ,一想肯定是VS的锅咯&#xff0c;各种抓头发。。 试试看看VS配置发现 &#xff0c;多了点东西。。 都勾上后&…

python中的threading_关于Python中的线程,之,threading,初探

threading库主要用于基于线程的并行&#xff0c;核心就是Thread类class threading.Thread(groupNone, targetNone, nameNone, args(), kwargs{}, *, daemonNone)并行是什么就不谈了&#xff0c;用threading的主要目的就是为了实现多个任务的并行&#xff0c;比如WiFi throughpu…

ios UISearchBar搜索框的基本使用

摘要: 小巧简洁的原生搜索框&#xff0c;漂亮而易用&#xff0c;如果我们的应用没有特殊需求&#xff0c;都可以使用它。iOS中UISearchBar(搜索框)使用总结 初始化&#xff1a;UISearchBar继承于UIView&#xff0c;我们可以像创建View那样创建searchBar UISearchBar * bar [[U…

Win8下怎样安装Win7 or Win7下怎样安装win8?

预计非常多人可能会用U盘安装工具去去做双系统的安装&#xff08;Win8下安装Win7&#xff0c; Win7下安装Win8&#xff09;。可是在安装过程中你 会发现一个问题&#xff1a;win7下安装win8&#xff0c;提示你mbr硬盘格式不能安装win8&#xff1b;win8下安装win7&#xff0c;提…

Linux 练习题-3文件与磁盘 问答

1、描述Liux下软链接和硬链接的区别创建命令不同&#xff0c;ln 命令创建硬链接&#xff0c;ln -s 创建软链接inode节点号不同&#xff0c;硬链接inode与源文件相同&#xff0c;软链接inode与源文件不同使用对象不同&#xff0c;硬链接只能对文件使用&#xff0c;软链接可以对文…

.NET Offer 快到碗里来!.NET 招聘季

关注我们谈到 .NET 在中国的推广和发展&#xff0c;.NET 开发者求职就业及 .NET 企业招人用人的问题往往常被提及。初学者会担心学习 .NET 之后的就业问题&#xff0c;.NET 开发者在求职过程中没有足够多的渠道来获取 .NET 招聘信息&#xff0c;而与此同时&#xff0c;采用 .NE…

java的collections_Java中Collection和Collections的区别

1) 排序(Sort)使用sort方法可以根据元素的自然顺序 对指定列表按升序进行排序。列表中的所有元素都必须实现 Comparable 接口。此列表内的所有元素都必须是使用指定比较器可相互比较的1 List list new ArrayList();2 int array[] {112, 111, 23, 456, 231};3 for (int i 0; …

jQuery事件绑定(一)

2019独角兽企业重金招聘Python工程师标准>>> 一、on方法 在Jquery1.7中添加&#xff0c;用来代替其他事件绑定方法。向匹配元素添加一个或多个事件处理程序 使用语法&#xff1a; $(selector).on(event,childselector,data,function) 参数&#xff1a; event&#x…

JDBC学习笔记之JDBC简介

1. 引言 JDBC API是一种Java API&#xff0c;可以访问任何类型的表格数据&#xff0c;特别是存储在关系数据库中的数据。 JDBC可以帮助我们编写下列三种编程活动的java应用程序&#xff1a; 1.连接到数据源&#xff0c;如数据库;2.发送查询和更新语句到数据库;3.检索并处理从数…