Windows phone开发初体验之(二)-页面导航

本文介绍了Windows Phone中NavigationService的使用方法,包括如何通过Uri进行页面间的导航与参数传递,并提供了一个具体的示例。

NavigationService

作用及描述:用以处理Windows phone页面的导航

常用属性

属性名称

说明

BackStack

获取一个IEnumerable,它用于枚举后退导航历史记录中的条目。

CanGoBack

获取一个值,该值指示在后退导航历史记录中是否至少存在一个条目。

CanGoForward

获取一个值,该值指示在前进导航历史记录中是否至少存在一个条目。

CurrentSource

获取当前显示的内容的统一资源标识符 (URI)。

Source

获取或设置当前内容或导航到的内容的统一资源标识符 (URI)。

常用方法

方法名称

说明

GoBack()

导航到后退导航历史记录中的最新条目;如果后退导航时没有条目,则引发异常。所以在这里我们就注意了,我们可以先判断下是否可以后退,这就用到了上面我们介绍的CanGoBack属性了。

GoForward()

导航到前进导航历史记录中的最新条目,如果前进导航时没有条目,则引发异常。对于 WindowsPhone,该方法始终引发异常,因为没有前进导航堆栈。同样的我们也需要在这里判断是否可以导航到下一页【CanGoForward】

Navigate(Uri uri)

对由统一资源标识符 (URI) 指定的内容的导航。参数为一个Uri对象

NavigationContext

作用及描述:表示导航操作的状态。

常用的属性

属性名称

说明

QueryString

获取查询字符串值的集合。其结果是一个IDictionary<string, string>键值对

给出的Demo示例:

首先看实现的效果

主要源代码:

MainPage.xaml

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
           <Button Content="跳转到第二页并带参数" Height="72" HorizontalAlignment="Left" Margin="53,220,0,0" Name="button1" VerticalAlignment="Top" Width="352" Click="button1_Click" />
           <TextBlock Height="30" HorizontalAlignment="Left" Margin="27,107,0,0" Name="textBlock1" Text="参数值:" VerticalAlignment="Top" />
           <TextBox Height="72" HorizontalAlignment="Left" Margin="129,84,0,0" Name="textBox1" Text="参数。。。" VerticalAlignment="Top" Width="460" />
       </Grid>
 

MainPage.xaml.cs 为按钮添加的Click事件

private void button1_Click(object sender, RoutedEventArgse)
        {
 
            //创建一个Uri对象
            Uri uri = new Uri("/Second.xaml?msg="+ textBox1.Text, UriKind.Relative);
            //导航到第二页
           NavigationService.Navigate(uri);
        }
 

Second.xaml文件中的布局:

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
           <TextBlock Height="30" HorizontalAlignment="Left" Margin="9,69,0,0" Name="textBlock1" Text="第一页传过来的值:" VerticalAlignment="Top" />
           <TextBlock Height="30" HorizontalAlignment="Left" Margin="214,69,0,0" Name="textBlock2" Text="TextBlock" VerticalAlignment="Top" />
           <Button Content="返回到上一页" Height="72" HorizontalAlignment="Left" Margin="54,230,0,0" Name="button1" VerticalAlignment="Top" Width="300" Click="button1_Click" />
       </Grid>
 
 

Second.xaml.cs文件,我们在页面的loaded事件取出传过来的值

  private voidPhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
        {
            string msg = "";
 
            if (NavigationContext.QueryString.TryGetValue("msg", outmsg))
            {
                this.textBlock2.Text = msg;
            }
        }
 
        private voidbutton1_Click(object sender, RoutedEventArgs e)
        {
            if(NavigationService.CanGoBack)
            {
               NavigationService.GoBack();
            }
        }

如需转载引用请注明出处:http://blog.youkuaiyun.com/jiahui524

内容概要:本文详细介绍了“秒杀商城”微服务架构的设计与实战全过程,涵盖系统从需求分析、服务拆分、技术选型到核心功能开发、分布式事务处理、容器化部署及监控链路追踪的完整流程。重点解决了高并发场景下的超卖问题,采用Redis预减库存、消息队列削峰、数据库乐观锁等手段保障数据一致性,并通过Nacos实现服务注册发现与配置管理,利用Seata处理跨服务分布式事务,结合RabbitMQ实现异步下单,提升系统吞吐能力。同时,项目支持Docker Compose快速部署和Kubernetes生产级编排,集成Sleuth+Zipkin链路追踪与Prometheus+Grafana监控体系,构建可观测性强的微服务系统。; 适合人群:具备Java基础和Spring Boot开发经验,熟悉微服务基本概念的中高级研发人员,尤其是希望深入理解高并发系统设计、分布式事务、服务治理等核心技术的开发者;适合工作2-5年、有志于转型微服务或提升架构能力的工程师; 使用场景及目标:①学习如何基于Spring Cloud Alibaba构建完整的微服务项目;②掌握秒杀场景下高并发、超卖控制、异步化、削峰填谷等关键技术方案;③实践分布式事务(Seata)、服务熔断降级、链路追踪、统一配置中心等企业级中间件的应用;④完成从本地开发到容器化部署的全流程落地; 阅读建议:建议按照文档提供的七个阶段循序渐进地动手实践,重点关注秒杀流程设计、服务间通信机制、分布式事务实现和系统性能优化部分,结合代码调试与监控工具深入理解各组件协作原理,真正掌握高并发微服务系统的构建能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值