Esempio n. 1
0
 public ObservableMvvmCommand(
     Func <TCommand, IObservable <TObservable> > factory,
     ISchedulers schedulers,
     IScheduler executionScheduler,
     string name,
     ICanExecuteStrategy <TCommand> canExecuteStrategy,
     Func <IObserver <TObservable> > doObserver = null,
     IScheduler doScheduler = null,
     Func <CancellationToken, Exception, Task> errorTask = null)
     : base(schedulers, name, canExecuteStrategy)
 {
     if (executionScheduler == null)
     {
         throw new ArgumentNullException("executionScheduler");
     }
     Factory = factory;
     if (errorTask == null)
     {
         _hasDefaultErrorTask = true;
         errorTask            = (ct, ex) => Task.FromResult(true);
     }
     if (doObserver == null)
     {
         doObserver = () => Observer.Create <TObservable>(_ => { });
     }
     DoObserver           = doObserver;
     DoScheduler          = doScheduler ?? schedulers.Immediate;
     ErrorTask            = errorTask;
     _executionScheduler  = executionScheduler;
     _executionDisposable = new SerialDisposable().DisposeWith(Disposables);
 }
Esempio n. 2
0
        public Command(Action <T> action, ISchedulers schedulers, string name, ICanExecuteStrategy <T> canExecuteStrategy)
            : base(schedulers, name, canExecuteStrategy)
        {
            if (action == null)
            {
                throw new ArgumentNullException("action");
            }

            Action = action;
        }
Esempio n. 3
0
 protected CommandBase(ISchedulers schedulers, string name, ICanExecuteStrategy <T> canExecuteStrategy)
 {
     if (canExecuteStrategy == null)
     {
         throw new ArgumentNullException("canExecuteStrategy");
     }
     if (string.IsNullOrEmpty(name))
     {
         throw new ArgumentNullException("name");
     }
     Name = name;
     _canExecuteStrategy = canExecuteStrategy;
     _disposable         = _canExecuteStrategy.CanExecuteChanged
                           .ObserveOn(schedulers.Dispatcher)
                           .Subscribe(b => RaiseCanExecute());
 }
Esempio n. 4
0
 public ObserveCanExecuteStrategy(IObservable <bool> canExecuteObservable, ICanExecuteStrategy <T> innerCanExecuteStrategy)
 {
     if (canExecuteObservable == null)
     {
         throw new ArgumentNullException("canExecuteObservable");
     }
     if (innerCanExecuteStrategy == null)
     {
         throw new ArgumentNullException("innerCanExecuteStrategy");
     }
     CanExecuteObservable         = canExecuteObservable;
     InnerCanExecuteStrategy      = innerCanExecuteStrategy;
     _observableCanExecuteChanged = new Subject <Unit>();
     _subscription = canExecuteObservable.Subscribe(b =>
     {
         _currentCanExecute = b;
         _observableCanExecuteChanged.OnNext(Unit.Default);
     }, e => { });
 }
 public ObservableMvvmCommandWithObservableCanExecute(
     Func <TCommand, IObservable <TObservable> > factory,
     ISchedulers schedulers,
     IScheduler executionScheduler,
     string name,
     IObservable <bool> observablePredicate,
     ICanExecuteStrategy <TCommand> canExecuteStrategy,
     Func <IObserver <TObservable> > doObserver = null,
     IScheduler doScheduler = null,
     Func <CancellationToken, Exception, Task> errorTask = null)
     : base(
         factory,
         schedulers,
         executionScheduler,
         name,
         new ObserveCanExecuteStrategy <TCommand>(observablePredicate, canExecuteStrategy),
         doObserver,
         doScheduler,
         errorTask)
 {
 }
 public CommandWithObservableCanExecute(Action <T> action, IObservable <bool> observablePredicate, ISchedulers schedulers, string name, ICanExecuteStrategy <T> canExecuteStrategy)
     : base(action, schedulers, name, new ObserveCanExecuteStrategy <T>(observablePredicate, canExecuteStrategy))
 {
 }