首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >从零开始学习X#(八-完结)

从零开始学习X#(八-完结)

作者头像
加菲猫的VFP
发布2021-08-16 14:57:42
发布2021-08-16 14:57:42
8000
举报
文章被收录于专栏:加菲猫的VFP加菲猫的VFP

(二)将事件绑定到控件

现在,我们的“添加”和“打印”按钮什么也做不了,因此,我们需要继续。由于添加和打印可能也是你想从窗口菜单调用的事件,并且我们不想重复劳动,因此我们可以在窗口中创建“CommandBinding”。这为我们提供了一个路由的中心位置,并可以确定事件是否在任何给定时间都可行(例如,除非剪贴板中有内容,否则无法粘贴;除非有任务要执行,否则无法打印任务列表。)。将此代码添加到<Window>元素下面:

代码语言:javascript
复制
<Window.CommandBindings>
 <CommandBinding Command="ApplicationCommands.New" 
   Executed="NewCommand_Executed" 
   CanExecute="NewCommand_CanExecute" />
 <CommandBinding Command="ApplicationCommands.Print" 
    Executed="PrintCommand_Executed" 
    CanExecute="PrintCommand_CanExecute" />
</Window.CommandBindings>

这个命令绑定集合为我们的每个命令命名,告诉我们事件触发时该怎么做,以及事件是否可以被触发。在这背后,我们添加了这些方法(我在WPF项目中使用C#,但我可以选择使用X#,因为这里的代码量很小,因此无关紧要):

代码语言:javascript
复制
privatevoid NewCommand_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{ e.CanExecute= true; }
privatevoid NewCommand_Executed(object sender, ExecutedRoutedEventArgs e)
       { MessageBox.Show("New Task"); }
privatevoid PrintCommand_CanExecute(object sender, CanExecuteRoutedEventArgs e)
        { e.CanExecute = true; }
privatevoid PrintCommand_Executed(object sender, ExecutedRoutedEventArgs e)
         { MessageBox.Show("Print"); }

现在,我们仅需要向每个按钮添加一个属性即可将它们链接到命令:

代码语言:javascript
复制
Command="ApplicationCommands.New"
Command="ApplicationCommands.Print"

现在,当我们启动应用程序时,我们将看到我们的窗口,其两个按钮都位于tackPanel内部的ToolBarPanel中,我们得到的结果如图12所示:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 加菲猫的VFP 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • (二)将事件绑定到控件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档