ActionCommand和DelegateCommand之间有什么区别

时间:2014-03-26 05:28:29

标签: c# mvvm icommand

如果有人能告诉我使用Expression Blend和DelegateCommand类(Prism)中的ActionCommand类有什么不同和好处,我将不胜感激?

如果我理解正确,则DelegateCommand支持两个委托,而ActionCommand类仅支持单个Execute委托。还有其他差异吗?阅读完文档和在线后,我仍然无法理解使用其中任何一个的好处。

提前致谢

1 个答案:

答案 0 :(得分:1)

DelegateCommand 允许委托命令逻辑,而不是在后面的代码中需要处理程序。它使用委托作为调用目标处理方法的方法。 像

public class DelegateCommand<T> : ICommand
{
    public DelegateCommand(Action<T> executeMethod, Func<T, bool> canExecuteMethod)
    {
        …
        this.executeMethod = executeMethod;
        this.canExecuteMethod = canExecuteMethod;
        …
    }
…
}