public void BehaviorSubjectTest()
    {
        var s  = new BehaviorSubject <string>("initial value");
        var rp = s.ToReadOnlyReactiveProperty();

        rp.Value.Is("initial value");
    }
Esempio n. 2
0
        public DeviceSelectDialogViewModel()
        {
            _disposables = new CompositeDisposable();

            LocalAddress = SwMainApi.GetAllLocalIPv4Addresses().FirstOrDefault();
            var ver = Assembly.GetCallingAssembly().GetName().Version;

            AppVersion = $"{ver.Major}.{ver.Minor}.{ver.Build}";

            _devices = new ObservableCollection <DiscoverResult>();
            Devices  = _devices.ToReadOnlyReactiveCollection().AddTo(_disposables);

            _discoverBusy         = new BusyNotifier();
            DiscoverDeviceCommand = _discoverBusy.Inverse().ToReactiveCommand().AddTo(_disposables);
            DiscoverDeviceCommand.Delay(new TimeSpan(100)).Subscribe(_ => DiscoverDevice()).AddTo(_disposables);

            IsSearchIpMode = new ReactiveProperty <bool>(false).AddTo(_disposables);
            IsSearchIpMode.Subscribe(b => {
                if (b)
                {
                    // Enter mode: clear fail flag.
                    _searchFailed.OnNext(false);
                }
                else if (DiscoverDeviceCommand.CanExecute())
                {
                    // Exit mode: rescan devices.
                    DiscoverDeviceCommand.Execute();
                }
            }).AddTo(_disposables);

            _searchFailed   = new BehaviorSubject <bool>(false).AddTo(_disposables);
            SearchFailed    = _searchFailed.ToReadOnlyReactiveProperty().AddTo(_disposables);
            SearchIpAddr    = new ReactiveProperty <string>().SetValidateAttribute(() => SearchIpAddr).AddTo(_disposables);
            SearchIpCommand = Observable.CombineLatest(SearchIpAddr.ObserveHasErrors, _discoverBusy, (e, c) => !e && !c)
                              .ToReactiveCommand().AddTo(_disposables);
            SearchIpCommand.Subscribe(_ => SearchIp()).AddTo(_disposables);
        }
 public void BehaviorSubjectTest()
 {
     var s = new BehaviorSubject<string>("initial value");
     var rp = s.ToReadOnlyReactiveProperty();
     rp.Value.Is("initial value");
 }