当前位置 : 主页 > 网络编程 > net编程 >

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

来源:互联网 收集:自由互联 发布时间:2023-08-25
首先在XAML中定义监听按键 Window.InputBindings KeyBinding Key="Esc" Command="{Binding CloseWindowCommand}" CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}" //Window.InputBindin

首先在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);


网友评论