首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

UWP MVVM NavigationView BackButton -按下时检测

在UWP(Universal Windows Platform)开发中,MVVM(Model-View-ViewModel)是一种常用的架构模式,用于将界面逻辑与业务逻辑分离。NavigationView是UWP中的一个控件,用于创建导航菜单和导航视图。

在NavigationView中,BackButton是一个重要的按钮,用于返回上一个导航页面。当用户按下BackButton时,我们可以通过检测其按下事件来执行相应的操作。

在MVVM模式中,我们可以通过以下步骤来实现按下BackButton时的检测:

  1. 在ViewModel中创建一个命令(Command),用于处理BackButton按下事件。可以使用一些流行的MVVM框架,如Prism、MVVMLight等,来简化命令的创建和绑定过程。
  2. 在View中,将NavigationView的BackButton与ViewModel中的命令进行绑定。可以使用XAML中的绑定语法,将NavigationView的BackRequested事件与ViewModel中的命令进行关联。
  3. 在ViewModel中的命令中,编写处理BackButton按下事件的逻辑。可以根据具体需求执行相应的操作,如返回上一个导航页面、执行一些清理操作等。

以下是一个示例代码,演示了如何在UWP MVVM中检测NavigationView的BackButton按下事件:

ViewModel代码:

代码语言:txt
复制
using Prism.Commands;
using Prism.Mvvm;

namespace YourNamespace
{
    public class MainViewModel : BindableBase
    {
        public DelegateCommand BackButtonCommand { get; }

        public MainViewModel()
        {
            BackButtonCommand = new DelegateCommand(OnBackButtonPressed);
        }

        private void OnBackButtonPressed()
        {
            // 处理BackButton按下事件的逻辑
            // 可以在这里执行返回上一个导航页面的操作
        }
    }
}

View代码(XAML):

代码语言:txt
复制
<Page
    ...
    xmlns:local="using:YourNamespace"
    xmlns:prismCommands="using:Prism.Commands"
    xmlns:prismInteractivity="using:Prism.Interactivity"
    xmlns:prismMvvm="using:Prism.Mvvm">

    <Page.DataContext>
        <local:MainViewModel />
    </Page.DataContext>

    <Grid>
        <NavigationView>
            <NavigationView.BackRequested>
                <prismInteractivity:EventToCommandBehavior Command="{Binding BackButtonCommand}" />
            </NavigationView.BackRequested>
        </NavigationView>
    </Grid>
</Page>

在上述示例中,我们创建了一个名为BackButtonCommand的命令,并将其与NavigationView的BackRequested事件进行了绑定。当用户按下BackButton时,命令中的OnBackButtonPressed方法将被调用,从而执行相应的逻辑。

请注意,以上示例中使用了Prism框架来简化MVVM开发过程。如果您使用其他MVVM框架,可以根据框架提供的方式进行相应的绑定和处理。

关于UWP、MVVM、NavigationView和命令的更多详细信息,请参考腾讯云的相关文档和教程:

希望以上信息能够帮助到您!如果您有任何进一步的问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

XAML中的响应式布局技术

在针对特定屏幕宽度优化应用 UI ,我们将此称为创建响应式设计。WPF设计之初响应式设计的概念并不流行,那时候大部分网页设计师都着宽度960像素的标准设计。...NavigationView UWP中部分控件已经实现了响应式行为, 最典型的就是NavigationView。可以使用 PaneDisplayMode 属性配置不同的导航样式或显示模式。...默认情况,PaneDisplayMode 设置为 Auto。...在 Auto 模式,导航视图会进行自适应,在窗口狭窄为 LeftMinimal,接下来为 LeftCompact,随后在窗口变宽为 Left。 ?...ViewBox ViewBox可以根据自身大小放大或缩小它的Content元素,某些情况它是WPF和UWP平台的终极响应式设计解决方案,因为WPF/UWP元素都是矢量元素所以大部分元素都可以无损缩放(

2.3K10

win10 uwp 简单MasterDetail UWP 导航List点击后退按钮页面更改大小修改显示修改我代码源码左右的列表和内容的相互操作

SystemNavigationManager.GetForCurrentView().BackRequested += BackRequested; 如果不知道我说的是什么,可以去我源代码...https://github.com/lindexi/UWP 然后在按后退按钮,就把我们的hasFrame=false; 大概我们就把一个页面做好,Detail就显示我们点击传的str 我们需要手机后退也是...如果看不懂我上面说的,可以看我代码https://github.com/lindexi/UWP/tree/master/uwp/src/DetailMaster 我们开始的大屏幕是使用Grid有分开,左边列表...关于 MVVM 可以看这个博客 http://lindexi.oschina.io/lindexi//post/win10-uwp-MVVM%E5%85%A5%E9%97%A8/ 下面说下English...and content in a col.If has content ,the content’s Zindex is greater than the list.And if click the backButton

1.8K00

如何将GridViewEX升级到UWP(Universal Windows Platform)平台

LayoutAwarePage 类最后添加设备查询的静态方法,来检测运行时设备。...微软也在Windows10 发布中升级了GridView控件,相对于Windows 8 版本来说,最重要的改变是添加了用户重定向检测。 3....VariableSizedWrapGrid 面板也添加了重定向检测功能。并且去掉了行和列自动展开的功能。下面是Windows8 版本的Xaml文件,在Windows10 中已经无法使用。...e.AcceptedOperation = Windows.ApplicationModel.DataTransfer.DataPackageOperation.Move; 运行代码编译器会发出很多关于...Bound 和Unbound 示例是由2个GridView控件组成,小屏幕中显的内容较多,无法显示更多的细节性的内容,因此使用Pivot控件保证同一间只显示一个GridView控件,并支持GridView

2.7K80

Extensions in UWP Community Toolkit - Overview

概述 UWP Community Toolkit  中有一个 Extensions 的集合,它们可以帮助开发者实现很多基础功能,省去自己造轮子的过程,本篇我们先来看一 Extensions 的功能都有哪些...来看一简单的代码示例: 我们使用两个 TextBlock 来显示实际绑定尺寸的宽度和高度,图一是 EnableActualSizeBinding 为 True 的显示,图二为 False 的错误信息显示...NavigationViewStyles NavigationViewStyles 一个样式的集合和扩展,可以重新定义 NavigationView 的外观和行为,类似 VSCode 中的 Activity...- 修改 NavigationView 的行为,在用户点击一个已经选择的 Item ,内容收起; 我们来看一简单的代码示例: 我们引用了 VSCode 的 Activity Bar 的样式,大家可以和...总结 到这里我们就把 UWP Community Toolkit 中的 Extensions 的种类和简单的代码调用讲解完成了,希望这些扩展对大家开发 UWP 应用有所帮助,如果大家有更好用的扩展类,也欢迎大家给

1.3K120

如何使用Fluent Design System ()

4.1 使用HamburgerMenu代替NavigationView UWP Community Toolkit中的HamburgerMenu是以前制作汉堡包导航菜单最常用的方案,升级到2.0版本以后它会判断运行的...其它常见的问题 5.1 为什么Acrylic和Reveal没有生效 在几种情况这两个特效不会生效,AcrylicBrush变成纯色不透明的Brush,应用了ButtonRevealStyle的按钮变成普通的按钮...大概和Windows7没激活不能开启Aero一样。...在触屏操作十分自然舒适的各种操作(典型的如横向移动)到了桌面的鼠标的操作变得十分别扭。...何况这个主题是讨论UWP中额FDS,不太想涉及WPF。上一篇文章的评论里提到FDS其中几种元素在WPF上的实现,有兴趣可以参考一。 8.

1.2K20

dotnet 从入门到放弃的 500 篇文章合集

模仿开始菜单 win10 UWP ListView win10 UWP Markdown 含源代码 win10 uwp MetroLog 入门 win10 uwp MVVM 语义耦合 win10 uwp...MVVM 轻量框架 win10 uwp MVVM入门 win10 uwp ping win10 uwp release 因为 Entry Point Not Found 无法启动 win10 UWP...uwp 绑定 OneWay 无法使用 win10 uwp 绑定密码 win10 uwp 绑定静态属性 win10 uwp 自定义控件初始化 win10 uwp 获取指定的文件 win10 uwp 获取按钮鼠标左键...win10 uwp 获取文件夹出错 win10 uwp 获得元素绝对坐标 win10 uwp 获得缩略图 win10 uwp 萤火虫效果 win10 uwp 让焦点在点击在页面空白处回到textbox...异步渲染 WPF 使用 SharpDX WPF 使用RPC调用其他进程 WPF 使用不安全代码快速从数组转 WriteableBitmap WPF 使用封装的 SharpDx 控件 WPF 修改按钮的颜色

10.4K20

C# 设计模式 责任链

发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况动态地重新组织和分配责任。《JAVA与模式》 我们在 C# 也可以使用责任链。...Request(str); } } 后退按钮使用责任链 我看到堆栈炸了有人问我,为什么一后退就炸。...新建一个类,这个类用做责任,通过这个类,可以做 MVVM ,如果对于这个不熟,请看 win10 uwp MVVM入门 本文告诉大家如何做出双击退出应用。 首先需要创建两个类作为责任链,请看下面。...在我之前写的游戏win10 uwp 商业游戏进入游戏,用户返回按钮,需要返回欢迎界面,那么这时候就需要添加后退的处理。...因为我添加的是 MVVM 框架,于是在跳转进游戏的 ViewModel 添加处理。关于这个框架,请看win10 uwp MVVM 轻量框架这里,但是我不会在本文用了太多这个框架的东西。

52330

.NET 基金会项目介绍-Json.NET

尽管在性能方便,后来产生的各种 JSON 处理框架都乐于使用本框架作为对比的对象,但是此框架卓越的兼容性,几乎成为了非性能场景的首选。...早年的微软出品的MVC系列还使用自家的 JSON 处理框架,但是到了WebApi系列就已经将内置的 JSON 处理框架改用了此框架。足见此框架的社区影响力。...Light Toolkit - 【客户端MVVM开发框架】 MvvmCross - 【客户端MVVM开发框架】 Nancy - 【Web开发框架】 .NET Core - 【Web开发框架】 Newtonsoft.Json...NET - 【SDK】 SourceLink - 【源码调试支持】 Steeltoe - 【微服务框架】 System.Drawing Mono - 【2D绘图工具库】 Telerik UI for UWP...- 【UWP UI框架】 Umbraco - 【CMS框架】 UWP Community Toolkit - 【UWP 工具库】 WCF - 【跨进程通信框架】 Windows Phone Toolkit

44920

.NET 基金会项目介绍-AutoMapper

它用于解决对象间进行赋值编写和测试枯燥乏味的代码。 利用简单的约定规则,AutoMapper 消除了成百上千的代码,这强化了开发者的 DTO 设计,使得其更加容易测试对象映射关系。...当然,绝大多数的环境使用 Profile 和 DynamicMap 几乎就能够满足需求。...但是也千万不要忽略研究 AutoMapper 提供的高级特性:对象扁平化、值工厂、Ioc集成、映射启动检查等等,利用好这些高级特性,也能减少不少代码量。...Light Toolkit - 【客户端MVVM开发框架】 MvvmCross - 【客户端MVVM开发框架】 Nancy - 【Web开发框架】 .NET Core - 【Web开发框架】 Newtonsoft.Json...- 【UWP UI框架】 Umbraco - 【CMS框架】 UWP Community Toolkit - 【UWP 工具库】 WCF - 【跨进程通信框架】 Windows Phone Toolkit

58010

.NET 基金会项目介绍-Newtonsoft.Json

尽管在性能方便,后来产生的各种 JSON 处理框架都乐于使用本框架作为对比的对象,但是此框架卓越的兼容性,几乎成为了非性能场景的首选。...早年的微软出品的MVC系列还使用自家的 JSON 处理框架,但是到了WebApi系列就已经将内置的 JSON 处理框架改用了此框架。足见此框架的社区影响力。...Light Toolkit - 【客户端MVVM开发框架】 MvvmCross - 【客户端MVVM开发框架】 Nancy - 【Web开发框架】 .NET Core - 【Web开发框架】 Newtonsoft.Json...NET - 【SDK】 SourceLink - 【源码调试支持】 Steeltoe - 【微服务框架】 System.Drawing Mono - 【2D绘图工具库】 Telerik UI for UWP...- 【UWP UI框架】 Umbraco - 【CMS框架】 UWP Community Toolkit - 【UWP 工具库】 WCF - 【跨进程通信框架】 Windows Phone Toolkit

42500

C# 设计模式 责任链 后退按钮使用责任链

发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况动态地重新组织和分配责任。《JAVA与模式》 我们在 C# 也可以使用责任链。...Request(str); } } 后退按钮使用责任链 我看到堆栈炸了有人问我,为什么一后退就炸。...新建一个类,这个类用做责任,通过这个类,可以做 MVVM ,如果对于这个不熟,请看 win10 uwp MVVM入门 本文告诉大家如何做出双击退出应用。 首先需要创建两个类作为责任链,请看下面。...在我之前写的游戏win10 uwp 商业游戏进入游戏,用户返回按钮,需要返回欢迎界面,那么这时候就需要添加后退的处理。...因为我添加的是 MVVM 框架,于是在跳转进游戏的 ViewModel 添加处理。关于这个框架,请看win10 uwp MVVM 轻量框架这里,但是我不会在本文用了太多这个框架的东西。

89910

当我们使用 MVVM 模式,我们究竟在每一层里做些什么?

当我们使用 MVVM 模式,我们究竟在每一层里做些什么?...我只是想说说我们究竟应该如何理解 M-V-VM,当我们真正开始写代码,应该在里面的每一层里写些什么。 ---- MVVM,当然三层——M-V-VM。...就凭这个“三层”结构,WPF/UWP 开发者们就能折腾出一个完整的程序出来。M——定义数据模型啊,V——视图啊,VM——视图模型。...如果你觉得这样的解释有些牵强,那我也无话可说;但是当我们将它理解成“驱动 UI 的数据”,我们将能够更容易地组织我们的代码,使之不容易发生混乱。...MVVM 模式此理解后,我们将更能够将代码放到合适的位置,避免 VM 代码的膨胀: 公共的控件或者辅助代码应该抽出来放到别处,比如形成公共组件 一些非 UI 的业务功能单独做,独立于 MVVM 模式,

86310

phonegap入门实战

项目   我们就带大家来感受一创建一个自己的phonegap程序,实现功能很简单就是点击返回按钮,弹出“hello world”。 1.在系统中,首先转到root目录,这就是我们要创建项目的目录。...4.插件添加完成以后,就可以在创建的目录中,进入www目录下,然后对index.html进行编辑,在这里面实现点击返回按钮,弹出“hello world”,保存文件。...对于我们操作手机也是一样,点击后退按钮、Home键、电池电量低等等。   事件有系统事件和用户事件。系统事件由系统激发,如时间每隔24小,银行储户的存款日期增加一天。...backbutton   PhoneGap拦截返回键,这个功能是当用户返回键时事件触发。...,可以通过注册一个事件监听器来监听“backbutton”事件。

1.5K20

【Flutter 专题】61 图解基本 Button 按钮小结 (一)

Button 在日常中是必不可少的,和尚尝试过不同类型的 Button,也根据需求自定义过,今天和尚系统的学习一最基本的 Button; Flutter 中没有 Button Widget,但提供了很多不同类型的...BackButton BackButton 作用非常明确,一般用作返回上一个页面; 源码分析 const BackButton({ Key key, this.color }) 分析源码...(); BackButton(color: Colors.green); CloseButton CloseButton 一般用作导航栏关闭按钮与 BackButton 类似; 源码分析 const...SizeBox 与 FittedBox 约束方式不同,只是整体范围变大,其内部按钮 Material 建议样式展示; // 方式三 floatingActionButton: SizedBox(...d. scale 与 FittedBox 类似,比例缩放; // 方式四 floatingActionButton: Transform.scale( scale: 1.5, child

1.4K21

你知道吗,Flutter内置了10多种Button控件

onHighlightChanged为高亮变化回调,处于高亮状态,抬起处于不高亮状态,用法如下: RaisedButton( onHighlightChanged: (high){ },...禁用状态背景颜色 highlightColor 高亮颜色,的颜色 splashColor 水波纹颜色,松开会有水波纹效果 以textColor为例,用法如下: RaisedButton(...BackButton BackButton是一个material风格的返回按钮,本身是一个IconButton,点击默认执行Navigator.maybePop即如果路由栈有上一页则返回到上一页。...和BackButton适用场景不同,BackButton适用于全屏的页面,而CloseButton适用于弹出的Dialog。 用法如下: CloseButton() 效果如下: ?...甚至可以设置点击水波纹颜色(splashColor)和的高亮颜色(highlightColor): ToggleButtons( splashColor: Colors.purple,

1.9K30
领券