//ignore events I don't care about public void When(IPropertyDefinitionEvent evt) { }
//Redirect all property events to properties public void When(IPropertyDefinitionEvent evt) { var propertyToDeliverEvent = _properties.FirstOrDefault(x => x.Id == evt.PropertyId); if (propertyToDeliverEvent != null) ((dynamic)propertyToDeliverEvent).When((dynamic)evt); }