Beispiel #1
0
        private AsyncCommand(ITaskRunner runner, ConditionAndDisposable conditionAndDisposable)
            : base(runner.Run, conditionAndDisposable.Condition)
        {
            this.CancelCommand = new ConditionRelayCommand(runner.Cancel, runner.CanCancelCondition);
            this.runner        = runner;
            var completionSubscription = runner.ObservePropertyChangedSlim(nameof(runner.TaskCompletion))
                                         .Subscribe(_ => this.OnPropertyChanged(nameof(this.Execution)));

            this.disposable = conditionAndDisposable.Disposable == null
                ? completionSubscription
                : new CompositeDisposable(2)
            {
                completionSubscription, conditionAndDisposable.Disposable
            };
        }
 private AsyncCommand(ITaskRunner <TParameter> runner)
     : this(runner, ConditionAndDisposable.Create(runner.CanRunCondition, null))
 {
 }
 private AsyncCommand(ITaskRunner <TParameter> runner, IReadOnlyList <ICondition> conditions)
     : this(runner, ConditionAndDisposable.Create(runner.CanRunCondition, conditions))
 {
 }