public RelayCommand(Action execute, Func <bool> canExecute)
        {
            if (execute == null)
            {
                throw new ArgumentNullException("execute is null.");
            }

            this.execute    = execute;
            this.canExecute = canExecute;
            this.RaiseCanExecuteChangedAction = RaiseCanExecuteChanged;
            SimpleCommandManager.AddRaiseCanExecuteChangedAction(ref RaiseCanExecuteChangedAction);
        }