创建一个接受带有返回类型的函数的动作

时间:2018-08-24 06:25:57

标签: c# wpf mvvm icommand

我正在开始使用MVVM和WPF。我有一个来自Datatables::of($querybuilder)->make()接口的CreateCommand类,它接受两个函数作为参数(一个用于Execute方法,一个用于ICommand方法)。

CanExecute

要求

我想像这样在ViewModel中创建一个新命令。

 class CreateCommand: ICommand
    {
        private Action ExecuteCommand;
        private Action CanExecuteCommand;
        public event EventHandler CanExecuteChanged;

        public CreateCommand(Action executeAction,Action canExecuteAction)
        {
            ExecuteCommand = executeAction;

            CanExecuteCommand = canExecuteAction;

        }

        public bool CanExecute(object parameter)
        {

            // gives error that the function CanExecute expects return type to be bool
            return CanExecuteCommand();               
        }

        public void Execute(object parameter)
        {
            ExecuteCommand();
        }
    }

问题

编译失败,并说CanExecute期望返回类型为bool
在此先感谢

1 个答案:

答案 0 :(得分:2)

这非常简单明了。 只需将定义更改为

 private Func<bool> CanExecuteCommand;

感谢@LadderLogic