Example #1
0
        private void OneTimeTargetHandler(IObserver sender, ValueChangedEventArgs args)
        {
            IDataBinding binding = Binding;

            if (binding != null && binding.TargetAccessor.IsAllMembersAvailable() && binding.SourceAccessor.IsAllMembersAvailable())
            {
                binding.TargetAccessor.Source.ValueChanged -= OneTimeTargetHandler;
                binding.UpdateTarget();
            }
        }
        private void OneTimeHandler(IBindingSource sender, ValueChangedEventArgs args)
        {
            IDataBinding binding = Binding;

            if (binding == null || !IsSourceAvailable() || !binding.UpdateTarget())
            {
                return;
            }
            UnsubscribeSources(OneTimeHandler);
            if (_disposeBinding)
            {
                binding.Dispose();
            }
        }
        private void OneTimeHandler(IObserver sender, ValueChangedEventArgs args)
        {
            IDataBinding binding = Binding;

            if (binding == null || !binding.TargetAccessor.IsAllMembersAvailable() || !binding.SourceAccessor.IsAllMembersAvailable(true))
            {
                return;
            }
            EventHandler <IObserver, ValueChangedEventArgs> handler = OneTimeHandler;

            UnsubscribeSources(handler);
            binding.TargetAccessor.Source.ValueChanged -= handler;
            binding.UpdateTarget();
            if (_disposeBinding)
            {
                binding.Dispose();
            }
        }
        protected override void UpdateErrors(IList <object> errors, IDataContext context)
        {
            Errors = errors ?? Empty.Array <object>();
            IDataBinding dataBinding = Binding;

            if (_updating || dataBinding == null || !IsAttached)
            {
                return;
            }
            try
            {
                _updating = true;
                dataBinding.UpdateTarget();
            }
            finally
            {
                _updating = false;
            }
        }