首页 > 其他分享 >[WPF]WPF中MVVM模式按下ESC键退出窗口

[WPF]WPF中MVVM模式按下ESC键退出窗口

时间:2023-08-17 18:55:42浏览次数:37  
标签:窗口 MVVM CloseWindowCommand 按下 window WPF Window

首先在XAML中定义监听按键

<Window.InputBindings>
        <KeyBinding
            Key="Esc"
            Command="{Binding CloseWindowCommand}"
            CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}" />
</Window.InputBindings>

此处,绑定了一个ICommand命令CloseWindowCommand。
在后台ViewModel中定义一个ICommand命令

/// <summary>
/// 窗口关闭
/// </summary>
public DelegateCommand<Window> CloseWindowCommand { get; set; }

定义一个关闭窗口的方法。

/// <summary>
/// 关闭窗口
/// </summary>
/// <param name="obj"></param>
private void CloseWindow(Window obj)
{
    var window = (Window)obj;
    if (window != null)
    {
    window.Close();
    }
}

初始化的时候,进行命令绑定。

CloseWindowCommand = new DelegateCommand<Window>(CloseWindow);

标签:窗口,MVVM,CloseWindowCommand,按下,window,WPF,Window
From: https://www.cnblogs.com/utopio/p/17638591.html

相关文章

  • WPF-超市管理系统
    1.新建WPFAPP(netframework)项目  ......
  • Wpf Thumb 默认样式存档,方便手头没有 vs 时查阅.
    1<StyleTargetType="{x:TypeThumb}">2<SetterProperty="Stylus.IsPressAndHoldEnabled"Value="false"/>3<SetterProperty="Background"Value="{DynamicResource{x:StaticSystemColors.C......
  • C# .NET6 WPF 依赖注入
    入口文件:App.xaml.csusingMicrosoft.EntityFrameworkCore;usingMicrosoft.Extensions.Configuration;usingMicrosoft.Extensions.DependencyInjection;usingSerilog;usingSystem;usingSystem.IO;usingSystem.Text;usingSystem.Windows;namespaceDemo{......
  • 自定义MarkupExtension的学习,以及WPF中Combobox绑定枚举类型
    我们上一期讲到ComBobox绑定数据,https://www.cnblogs.com/guchen33/p/17630808.html这次我们简单化一下,正常来讲WPF中绑定不了枚举的像这样//前台代码<ComboBoxItemsSource="{BindingMyEnum}"/>//后台VMpublicenumMyEnum{One,Two,Three,Fo......
  • WPF如何构建MVVM+Prism+HandyControl ,模块化的桌面应用
    为何模块化模块化是一种分治思想,不仅可以分离复杂的业务逻辑,还可以进行不同任务的分工。模块与模块之间相互独立,从而构建一种松耦合的应用程序,便于开发和维护。开发技术.Net6+WPF+Prism(v8.0.0.1909)+HandyControl(v3.4.0)知识准备什么是MVVMModel-View-ViewModel......
  • 【愚公系列】2023年08月 WPF控件专题 WPF应用程序组成
    (文章目录)<hrstyle="border:solid;width:100px;height:1px;"color=#000000size=1">一、WPF组成WindowsPresentationFoundation由两个主要部分组成:引擎和编程框架。1、WindowsPresentationFoundation引擎。WindowsPresentationFoundation(WPF)引擎是一个用于创建Wi......
  • 介绍几款WPF应用的UI库
    在WPF中对于前端页面的书写,我们有现成的UI类库,不需要我们自己再去写我这里介绍几款1、MahApps官网https://mahapps.com/使用,在App.xaml中添加<Application.Resources><ResourceDictionary><ResourceDictionary.MergedDictionaries><Resour......
  • 介绍几款WPF应用的UI库
    在WPF中对于前端页面的书写,我们有现成的UI类库,不需要我们自己再去写我这里介绍几款1、MahApps官网https://mahapps.com/使用,在App.xaml中添加<Application.Resources><ResourceDictionary><ResourceDictionary.MergedDictionaries><Resourc......
  • WPF状态保存
    由于WPF做客户端的时候,它不像BS那样有Session,Cookie给你使用,所以保存状态你首先想到的就是数据库了。但是你不可能什么都放在数据库,为此还专门为它建立一张表。而WPF中能用到的除了数字存储仓,Redis,MemoryCache之外,最简单最直接的办法就是保存到本地。像这种,记得qq登录界面也是......
  • WPF如何构建MVVM+模块化的桌面应用
    为何模块化模块化是一种分治思想,不仅可以分离复杂的业务逻辑,还可以进行不同任务的分工。模块与模块之间相互独立,从而构建一种松耦合的应用程序,便于开发和维护。开发技术.Net6+WPF+Prism(v8.0.0.1909)+HandyControl(v3.4.0)知识准备什么是MVVMModel-View-ViewModel......