using System;
namespace ArdupilotMega.Presenter
{
///
/// 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 : ICommand
{
private readonly Predicate