After(PropertyBindingAction d, PropertyBindingAction action)
 {
     return(new PropertyBindingAction((t, s) => {
         d(t, s);
         action(t, s);
     }));
 }
 Before(PropertyBindingAction d, PropertyBindingAction action)
 {
     return(new PropertyBindingAction((b, c) => {
         action(b, c);
         d(b, c);
     }));
 }
            AfterTargetUpdate(PropertyBindingAction action)
            {
                var oldAction = binding.UpdateTargetAction;

                binding.UpdateTargetAction = new PropertyBindingAction((binding, change) => {
                    oldAction(binding, change);
                    action(binding, change);
                });
                return(this);
            }
            BeforeTargetUpdate(PropertyBindingAction action)
            {
                var oldAction = binding.UpdateTargetAction;

                binding.UpdateTargetAction = new PropertyBindingAction((binding, source) => {
                    action(binding, source);
                    oldAction(binding, source);
                });
                return(this);
            }
Beispiel #5
0
        /// <summary>
        /// Set action to call right after <see cref="IBinding.UpdateTarget"/>.
        /// </summary>
        /// <param name="action">after update target action</param>
        public PropertyBindingSourceBuilder <TSource> AfterTargetUpdate(PropertyBindingAction action)
        {
            var oldAction = Binding.UpdateTargetAction;

            Binding.UpdateTargetAction = (b, change) =>
            {
                oldAction(b, change);
                action(b, change);
            };
            return(this);
        }
Beispiel #6
0
        /// <summary>
        /// Set action to call right before <see cref="IBinding.UpdateTarget"/>.
        /// </summary>
        /// <param name="action">before update target action</param>
        public PropertyBindingSourceBuilder <TSource> BeforeTargetUpdate(PropertyBindingAction action)
        {
            var oldAction = Binding.UpdateTargetAction;

            Binding.UpdateTargetAction = (b, source) =>
            {
                action(b, source);
                oldAction(b, source);
            };
            return(this);
        }
            public TargetBinding <T> OneWayToSource()
            {
                var old = binding.UpdateSourceAction;
                var b   = binding;
                PropertyBindingAction initTargetAndStopUpdating = (t, s) => {
                    old(t, s);
                    b.DontUpdateSource();
                };

                binding.UpdateSourceAction = initTargetAndStopUpdating;
                return(this);
            }
Beispiel #8
0
 void PerformAction(PropertyBindingAction action)
 {
     if (Enabled && !performingAction)
     {
         Assert.State(Source != null).IsTrue("Source is not set");
         try {
             performingAction = true;
             action(this, action == UpdateSourceAction ? ChangeSource.Source : ChangeSource.Target);
         } finally {
             performingAction = false;
         }
     }
 }
 BeforeUpdate(PropertyBindingAction action)
 {
     BeforeSourceUpdate(action);
     BeforeTargetUpdate(action);
     return(this);
 }
 AfterUpdate(PropertyBindingAction action)
 {
     AfterSourceUpdate(action);
     AfterTargetUpdate(action);
     return(this);
 }
 AfterSourceUpdate(PropertyBindingAction action)
 {
     binding.UpdateSourceAction = After(binding.UpdateSourceAction, action);
     return(this);
 }
 AfterTargetUpdate(PropertyBindingAction action)
 {
     binding.UpdateTargetAction = After(binding.UpdateTargetAction, action);
     return(this);
 }
Beispiel #13
0
 /// <summary>
 /// Set action to call right after <see cref="IBinding.UpdateSource"/>.
 /// </summary>
 /// <param name="action">after update source action</param>
 public PropertyBindingTargetBuilder <T> AfterSourceUpdate(PropertyBindingAction action)
 {
     _binding.UpdateSourceAction = After(_binding.UpdateSourceAction, action);
     return(this);
 }
 BeforeSourceUpdate(PropertyBindingAction action)
 {
     binding.UpdateSourceAction = Before(binding.UpdateSourceAction, action);
     return(this);
 }
Beispiel #15
0
 /// <summary>
 /// Set action to call right before <see cref="IBinding.UpdateSource"/> or <see cref="IBinding.UpdateTarget"/>.
 /// </summary>
 /// <param name="action">before update source or update target action</param>
 public PropertyBindingTargetBuilder <T> BeforeUpdate(PropertyBindingAction action)
 {
     BeforeSourceUpdate(action);
     BeforeTargetUpdate(action);
     return(this);
 }
 UpdateSource(PropertyBindingAction action)
 {
     binding.UpdateSourceAction = action;
     return(this);
 }
 UpdateTarget(PropertyBindingAction action)
 {
     binding.UpdateTargetAction = action;
     return(this);
 }
Beispiel #18
0
 /// <summary>
 /// Set action to call right before <see cref="IBinding.UpdateTarget"/>.
 /// </summary>
 /// <param name="action">before update target action</param>
 public PropertyBindingTargetBuilder <T> BeforeTargetUpdate(PropertyBindingAction action)
 {
     _binding.UpdateTargetAction = Before(_binding.UpdateTargetAction, action);
     return(this);
 }
 public void UpdateTarget(PropertyBindingAction action)
 {
     binding.UpdateTargetAction = action;
 }
Beispiel #20
0
 /// <summary>
 /// Set action to call right after <see cref="IBinding.UpdateSource"/> or <see cref="IBinding.UpdateTarget"/>.
 /// </summary>
 /// <param name="action">after update source or update target action</param>
 public PropertyBindingTargetBuilder <T> AfterUpdate(PropertyBindingAction action)
 {
     AfterSourceUpdate(action);
     AfterTargetUpdate(action);
     return(this);
 }
 BeforeTargetUpdate(PropertyBindingAction action)
 {
     binding.UpdateTargetAction = Before(binding.UpdateTargetAction, action);
     return(this);
 }
Beispiel #22
0
 /// <summary>
 /// Set <see cref="IBinding"/> <see cref="IBinding.UpdateSource"/> action
 /// </summary>
 /// <param name="action">update source action</param>
 public PropertyBindingTargetBuilder <T> UpdateSource(PropertyBindingAction action)
 {
     _binding.UpdateSourceAction = action;
     return(this);
 }