Пример #1
0
        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));
        }
Пример #3
0
        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);
            });
        }
Пример #4
0
        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));
        }
Пример #5
0
 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);
 }