public BidirectionalPropertySynchronization(INotifyReversableValue <T> source1, INotifyReversableValue <T> source2)
        {
            Source1 = source1;
            Source2 = source2;

            Source1.ValueChanged += Source1_ValueChanged;
            Source2.ValueChanged += Source2_ValueChanged;
        }
            public TwoWaySynchronization(INotifyReversableValue <TDepLeft> left, INotifyReversableValue <TDepRight> right, SynchronizationComputation <TLeft, TRight> computation, SynchronizationSingleDependency <TLeft, TRight, TDepLeft, TDepRight> parent)
            {
                Left        = left;
                Right       = right;
                Parent      = parent;
                Computation = computation;

                Left.ValueChanged  += Left_ValueChanged;
                Right.ValueChanged += Right_ValueChanged;
            }
Beispiel #3
0
        internal IncrementalReferenceConsistencyCheck(INotifyReversableValue <TDepLeft> left, INotifyReversableValue <TDepRight> right, SynchronizationComputation <TLeft, TRight> computation, SynchronizationSingleDependency <TLeft, TRight, TDepLeft, TDepRight> parent)
        {
            Left        = left;
            Right       = right;
            Parent      = parent;
            Computation = computation;

            Left.ValueChanged  += Left_ValueChanged;
            Right.ValueChanged += Right_ValueChanged;

            if (Computation.SynchronizationContext.Direction == SynchronizationDirection.CheckOnly &&
                Computation.TransformationContext.Trace.ResolveIn(Parent.childRule.LeftToRight, Left.Value) != Right.Value)
            {
                Computation.SynchronizationContext.Inconsistencies.Add(this);
            }
        }
Beispiel #4
0
        public IncrementalPropertyConsistencyCheck(INotifyReversableValue <T> source1, INotifyReversableValue <T> source2, ISynchronizationContext context)
        {
            SourceLeft  = source1;
            SourceRight = source2;

            SourceLeft.Successors.SetDummy();
            SourceRight.Successors.SetDummy();
            SourceLeft.ValueChanged  += Source_ValueChanged;
            SourceRight.ValueChanged += Source_ValueChanged;

            Context = context;

            if (!EqualityComparer <T> .Default.Equals(SourceLeft.Value, SourceRight.Value))
            {
                Context.Inconsistencies.Add(this);
            }
        }
Beispiel #5
0
 public ObservableProxyReversableExpression(INotifyReversableValue <T> value)
     : base(value)
 {
 }
Beispiel #6
0
 public ObservableLensPutProxy(INotifyReversableValue <TBase> target, INotifyExpression <T> inner, LensPutAttribute lensAttribute, MethodInfo method)
 {
     this.inner = inner;
     this.lens  = LensPut <TBase, T> .FromLensPutAttribute(lensAttribute, method, target);
 }