protected override void OnLambdaValueChanged(LambdaValueChangedEventArgs <TSource, IEnumerable <TResult> > args) { // unsubscribe from old value UnsubscribeItem(args.OldValue); items.Remove(args.OldValue); // subscribe to new value items.Add(args.NewValue); SubscribeItem(args.NewValue); var oldValues = args.OldValue.Except(args.NewValue).ToList(); var newValues = args.NewValue.Except(args.OldValue).ToList(); if (oldValues.Count == 0 && newValues.Count >= 1) { NotifyCollectionChangedUtil.RaiseAddEvent <TResult>(OnCollectionChanged, newValues); } else if (oldValues.Count >= 1 && newValues.Count == 0) { NotifyCollectionChangedUtil.RaiseRemoveEvent <TResult>(OnCollectionChanged, oldValues); } else if (oldValues.Count >= 1 && newValues.Count >= 1) { NotifyCollectionChangedUtil.RaiseReplaceEvent <TResult>(OnCollectionChanged, oldValues, newValues); } }
protected override void OnPredicateValueChanged(LambdaValueChangedEventArgs <TSource, bool> args) { if (!args.OldValue && args.NewValue) { SetValue(++count); } else if (args.OldValue && !args.NewValue) { SetValue(--count); } }
protected override void OnLambdaValueChanged(LambdaValueChangedEventArgs <TSource, TResult> args) { var oldValue = (TResult)args.OldValue; var newValue = (TResult)args.NewValue; // single value has been replaced if (!object.Equals(oldValue, newValue)) { NotifyCollectionChangedUtil.RaiseReplaceEvent <TResult>(RaiseCollectionChanged, oldValue, newValue); } }
protected override void OnPredicateValueChanged(LambdaValueChangedEventArgs <TSource, bool> args) { // any value being set to true means we're true if (args.NewValue) { SetValue(true); } else { base.OnPredicateValueChanged(args); } }
protected override void OnPredicateValueChanged(LambdaValueChangedEventArgs <TElement, bool> args) { if (!args.OldValue && args.NewValue) { // was false, now true: item added NotifyCollectionChangedUtil.RaiseAddEvent <TElement>(OnCollectionChanged, args.Item); } else if (args.OldValue && !args.NewValue) { // was true, now false: item removed NotifyCollectionChangedUtil.RaiseRemoveEvent <TElement>(OnCollectionChanged, args.Item); } ; }
protected override void OnLambdaValueChanged(LambdaValueChangedEventArgs <TSource, TLambdaResult> args) { ResetValue(); }
/// <summary> /// Invoked when a predicate value is changed. /// </summary> /// <param name="args"></param> protected virtual void OnPredicateValueChanged(LambdaValueChangedEventArgs <TSource, bool> args) { base.OnProjectionValueChanged(args); }
protected override sealed void OnProjectionValueChanged(LambdaValueChangedEventArgs <TSource, bool> args) { OnPredicateValueChanged(args); }
/// <summary> /// Invoked when the value of a projection is changed. /// </summary> /// <param name="args"></param> protected virtual void OnProjectionValueChanged(LambdaValueChangedEventArgs <TSource, TProjection> args) { base.OnLambdaValueChanged(args); }
protected override sealed void OnLambdaValueChanged(LambdaValueChangedEventArgs <TSource, TProjection> args) { OnProjectionValueChanged(args); }
protected override void OnLambdaValueChanged(LambdaValueChangedEventArgs <TElement, TKey> args) { RemoveItemWithKey(args.Item, args.OldValue); AddItem(args.Item); }
protected override void OnProjectionValueChanged(LambdaValueChangedEventArgs <TSource, int> args) { SetValue(sum = sum - args.OldValue + args.NewValue); }
/// <summary> /// Invoked when the value of a predicate is changed. /// </summary> /// <param name="args"></param> protected virtual void OnPredicateValueChanged(LambdaValueChangedEventArgs <TSource, bool> args) { }
/// <summary> /// Invoked when one of the lambda's value is changed. /// </summary> /// <param name="sender"></param> /// <param name="args"></param> void lambdas_ValueChanged(object sender, LambdaValueChangedEventArgs <TSource, TLambdaResult> args) { OnLambdaValueChanged(args); }
/// <summary> /// Invoked when one of the lambda's value is changed. /// </summary> /// <param name="args"></param> protected virtual void OnLambdaValueChanged(LambdaValueChangedEventArgs <TSource, TLambdaResult> args) { }
protected override void OnProjectionValueChanged(LambdaValueChangedEventArgs <TSource, TResult> args) { SetValue(average = Divide(sum = Add(Subtract(sum, args.OldValue), args.NewValue), count)); }