public ActionCommand(Action execute, IObservableReadOnlyValue <bool> canExecute) { _execute = execute ?? throw new ArgumentNullException(nameof(execute)); CanExecute = canExecute ?? ObservableValue.Create(true); _canExecuteSubscription = canExecute?.Subscribe(x => CanExecuteChanged?.Invoke(this, EventArgs.Empty)); }
public AsyncActionCommand(Func <CancellationToken, Task> executeAsync, IObservableReadOnlyValue <bool> canExecute) { _executeAsync = executeAsync ?? throw new ArgumentNullException(nameof(executeAsync)); CanExecute = canExecute ?? ObservableValue.Create(true); _canExecuteSubscription = canExecute?.Subscribe(x => CanExecuteChanged?.Invoke(this, EventArgs.Empty)); }
public ActionCommand(Action execute, IObservable <bool> canExecute) { _execute = execute ?? throw new ArgumentNullException(nameof(execute)); if (canExecute is null) { throw new ArgumentNullException(nameof(canExecute)); } var canExecuteValue = ObservableValue.Create(false); CanExecute = canExecuteValue; _canExecuteSubscription = canExecute?.Subscribe(x => { canExecuteValue.Value = x; CanExecuteChanged?.Invoke(this, EventArgs.Empty); }); }
public void Initialized() { using var value = ObservableValue.Create(1); Assert.True(value.IsInitialized); Assert.Equal(1, value); var n = 0; var obs = value.Subscribe(v => n = v); Assert.Equal(1, n); value.Post(2); Assert.Equal(2, n); Assert.Equal(2, value); obs.Dispose(); value.Post(3); Assert.Equal(2, n); Assert.Equal(3, value); value.Dispose(); Assert.Throws <ObjectDisposedException>(() => value.Post(4)); }
public ActionCommand(Action execute) { _execute = execute ?? throw new ArgumentNullException(nameof(execute)); CanExecute = ObservableValue.Create(true); }
public AsyncActionCommand(Func <CancellationToken, Task> executeAsync) { _executeAsync = executeAsync ?? throw new ArgumentNullException(nameof(executeAsync)); CanExecute = ObservableValue.Create(true); }