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