对wpf 的入门记录总结--命令概念与用法

本文介绍了WPF中命令的概念,以解决传统GUI应用中重复事件处理的问题。通过CommandBinding实现命令与事件处理程序的关联,详细讲解了如何在窗口和用户控件上定义CommandBindings,并通过Execute和CanExecute方法执行实际操作。文章还展示了如何使用内置命令,如ApplicationCommands,简化开发过程。
摘要由CSDN通过智能技术生成

需求

主菜单和一组工具栏的典型界面,则可以在菜单,工具栏,上下文菜单(例如,在主应用程序区域中单击鼠标右键时)使用新建(New)或打开(Open)等操作,以及使用键盘快捷键,如Ctrl+N和Ctrl+O.

对应上面的每种行为的响应代码都完全一样,但是传统的gui 应用程序中,你不得不为每一种行为定义一个对应的event 然后调用相同的方法。
这不是一种理想的处理方法。

在WPF中,微软尝试使用命令这个概念来解决这个问题。WPF会监听键盘快捷键,并且如果存在合适的命令,会直接调用,这使得命令成为一个理想的在应用中提供快捷键的方式。

命令绑定CommandBinding

命令实际上并没有自己做任何事情。在根目录中,它们由ICommand接口组成,该接口仅定义一个事件和两个方法:Execute()和CanExecute()。第一个用于执行实际操作,而第二个用于确定操作当前是否可用。
要执行命令的实际操作,您需要命令和代码之间的链接,这是CommandBinding发挥作用的地方。

CommandBinding通常在Window或UserControl上定义,并保存对它处理的Command的引用,以及用于处理Command的Execute()和CanExecute()事件的实际事件处理程序。

实际用法

<Window x:Class="命令.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
              
        Title="MainWindow"  Height="100" Width="200">
    <Window.CommandBindings>
        <CommandBinding Command="ApplicationCommands.New" Executed="NewCommand_Executed" CanExecute="NewCommand_CanExecute" />
    </Window.CommandBindings>

    <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
        <Button Command="ApplicationCommands.New">New</Button>
    </StackPanel>
</Window>

using System.Windows;
using System.Windows.Input;

namespace 命令
{
   
    /// <summary>
    /// MainWindow.xaml
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值