Ejemplo n.º 1
0
        void IObserver <object> .OnNext(object value)
        {
            void Signal()
            {
                var notification = value as BindingNotification;

                if (notification != null)
                {
                    if (notification.HasValue || notification.ErrorType == BindingErrorType.Error)
                    {
                        Value = notification.Value;
                        _owner.Changed(this);
                    }

                    if (notification.ErrorType != BindingErrorType.None)
                    {
                        _owner.Error(this, notification);
                    }
                }
                else
                {
                    Value = value;
                    _owner.Changed(this);
                }
            }

            if (Dispatcher.UIThread.CheckAccess())
            {
                Signal();
            }
            else
            {
                Dispatcher.UIThread.Post(Signal);
            }
        }
Ejemplo n.º 2
0
        private void ValueChanged(object value)
        {
            _owner.Owner.Owner?.VerifyAccess();

            var notification = value as BindingNotification;

            if (notification != null)
            {
                if (notification.HasValue)
                {
                    Value = notification.Value;
                    _owner.Changed(this);
                }

                if (notification.ErrorType != BindingErrorType.None)
                {
                    _owner.Error(this, notification);
                }
            }
            else
            {
                Value = value;
                _owner.Changed(this);
            }
        }
Ejemplo n.º 3
0
        private void ValueChanged(object value)
        {
            var bindingError = value as BindingError;

            if (bindingError != null)
            {
                _owner.Error(this, bindingError);
            }

            var validationStatus = value as IValidationStatus;

            if (validationStatus != null)
            {
                _owner.Validation(this, validationStatus);
            }
            else if (bindingError == null || bindingError.UseFallbackValue)
            {
                Value = bindingError == null ? value : bindingError.FallbackValue;
                _owner.Changed(this);
            }
        }