public bool ItemAddedOrRemoved <TVal>(Expression <Func <TObj, IList <TVal> > > propertyLambda, out IAmItemEventMessage <TObj, TVal> cmessage) =>
 ItemAddedOrRemoved(GetPropNameFromLambda(propertyLambda), out cmessage);
 public bool ItemAddedOrRemoved <TVal>(string propertyName, out IAmItemEventMessage <TObj, TVal> cmessage)
 {
     cmessage = message as IAmItemEventMessage <TObj, TVal>;
     return(ObjectIsSuitable(message.Object) && cmessage?.Binding.PropertyName == propertyName);
 }