About the application of lambda and relayCommand

本文介绍了一个使用RelayCommand实现的TextEditor保存命令。该命令通过检查案例是否正在运行来确定是否可以执行保存操作,并使用File.WriteAllText方法将编辑器的内容写入指定文件路径。
 public RelayCommand<TextEditor> SaveCommand
        {
            get
            {
?? 代表这个返回的_saveCommand为false时,就new一个新对象返回。
                return _saveCommand
                    ?? (_saveCommand = new RelayCommand<TextEditor>(
                    editor =>
                    {
                        try
                        {
                            // Can't add Encoding when save, it's wired, but it's the fact. Otherwise some wired character will appear at the beginning of line 1
                            File.WriteAllText(Case.CasePath, editor.Text);
                        }
                        catch (System.Exception e)
                        {
                            MessageBox.Show(e.Message);
                            return;
                        }
                        MessageBox.Show("Case " + Case.CaseName + " saved.");
                    }, (x) => !this.CaseIsRunning));
            }
        }
editor => 和(x) =>这两个lambda函数作为参数在RelayCommand的构造函数中。
如_saveCommand=new RelayCommand<TextEditor>(void A{},bool B{});当B为真时,A函数才执行。
这种语法是在RelayCommand的构造函数中定义的,A是excute()方法,后面是CanExcute()后者返回一个bool类型,当返回值为ture是excute才会执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值