// Non generic sources public static Synchronizer <Ta, object> SyncWith <Ta>(this IEditableCollection <Ta> collectionA, IEnumerable collectionB, Func <object, Ta> createA, Action <Ta> destroyA, Predicate <object> filterPredicate) { var target = new EditableCollectionTarget <Ta>(collectionA); var source = CreateNonGenericSource(collectionB); return(new Synchronizer <Ta, object>(target, source, createA, destroyA, filterPredicate)); }
// Non generic sources public static Synchronizer <Ta, object> SyncWith <Ta>(this IEditableCollection <Ta> collectionA, IEnumerable collectionB, Func <object, Ta> createA, Action <Ta> destroyA = null, Predicate <object> filterPredicate = null, SyncEventHandler <Ta, object> syncEventHandler = null) { var target = new EditableCollectionTarget <Ta>(collectionA); var source = CreateNonGenericSource(collectionB); destroyA = destroyA ?? RemoveAndDispose; filterPredicate = filterPredicate ?? DefaultFilterPredicate; return(new Synchronizer <Ta, object>(target, source, createA, destroyA, filterPredicate, syncEventHandler)); }