How detect change in a panel
You can only bind callbacks to properties, but you can't determine the origin of a change event.

It will be called the same way regardless of whether the user dragged a slider in a panel here, or ticked a checkbox in a panel there, or if he/she or another script changed the property programmatically.