public static BehaviorsDisposable <IEnumerable <T> > AddBehavior <T> ( this BehaviorsDisposable <IEnumerable <T> > previousBehaviors, Action <T> onAdd, Action <T> onRemove = null ) { IEnumerable <T> collection = previousBehaviors?.TheObjectTheBehaviorsAreAttachedTo; return(collection.AddBehaviorImpl <T>(onAdd, onRemove, previousBehaviors)); }
private static BehaviorsDisposable <IEnumerable <T> > AddBehaviorImpl <T> ( this IEnumerable <T> collection, Action <T> onAdd, Action <T> onRemove = null, BehaviorsDisposable <IEnumerable <T> > previousBehavior = null ) { DoForEachItemCollectionBehavior <T> behavior = new DoForEachItemCollectionBehavior <T>(onAdd, onRemove); return(collection?.AddBehaviorImpl <T>(behavior, previousBehavior)); }
public BehaviorsDisposable ( DisposableBehaviorContainer <T> disposableBehaviorToAdd, BehaviorsDisposable <T> previousBehavior = null ) { if (previousBehavior != null) { previousBehavior ._disposableBehaviors ?.ForEach((dispBehavior) => _disposableBehaviors.Add(dispBehavior)); } _disposableBehaviors.Add(disposableBehaviorToAdd); }
private static BehaviorsDisposable <IEnumerable <T> > AddBehaviorImpl <T> ( this IEnumerable <T> collection, DoForEachItemCollectionBehavior <T> behavior, BehaviorsDisposable <IEnumerable <T> > previousBehavior = null ) { if (collection == null) { return(null); } DisposableBehaviorContainer <IEnumerable <T> > behaviorContainer = new DisposableBehaviorContainer <IEnumerable <T> >(behavior, collection); BehaviorsDisposable <IEnumerable <T> > behaviorsDisposable = new BehaviorsDisposable <IEnumerable <T> >(behaviorContainer, previousBehavior); return(behaviorsDisposable); }