using System;
using Kent.Boogaart.HelperTrinity.Extensions;
namespace Kent.Boogaart.MVVM
{
///
/// A command that executes delegates to determine whether the command can execute, and to execute the command.
///
///
///
/// This command implementation is useful when the command simply needs to execute a method on a view model. The delegate for
/// determining whether the command can execute is optional. If it is not provided, the command is considered always eligible
/// to execute.
///
///
public class DelegateCommand : Command
{
private readonly Predicate