public static ItemsProcessingVoid <IDeleteable> LinkDeletions(this INotifyCollectionChanged collection) { void DeleteHandler(object sender, EventArgs e) { ((IList)collection).Remove(sender); } return(collection.ItemsProcessing <IDeleteable>( (d, ip, o, e) => d.Deleted += DeleteHandler, (d, ip, o, e) => d.Deleted -= DeleteHandler )); }