/// <summary> /// Initializes a new instance of the RelayCommand class. /// </summary> /// <param name="execute">The execution logic.</param> /// <param name="canExecute">The execution status logic.</param> /// <exception cref="ArgumentNullException">If the execute argument is null.</exception> public RelayCommand(Action <T> execute, Func <T, bool> canExecute) { if (execute == null) { throw new ArgumentNullException("execute"); } _execute = new WeakAction <T>(execute); if (canExecute != null) { _canExecute = new WeakFunc <T, bool>(canExecute); } }