예제 #1
0
        private static void ClearBinding(IDataBinding binding)
        {
            binding.Dispose();
            var dataBinding = binding as DataBinding;

            if (dataBinding == null)
            {
                ServiceProvider.AttachedValueProvider.Clear(binding, IsRegisteredMember);
            }
            else
            {
                dataBinding.IsAssociated = false;
            }
        }
        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();
            }
        }
 public override void Dispose()
 {
     _binding.Dispose();
 }
예제 #5
0
 private static void ClearBinding(IDataBinding binding)
 {
     binding.Dispose();
     var dataBinding = binding as DataBinding;
     if (dataBinding == null)
         ServiceProvider.AttachedValueProvider.Clear(binding, IsRegisteredMember);
     else
         dataBinding.IsAssociated = false;
 }