Reacting to changes to a Python defined RNA Property
Yes, for any property, you can define a set and update callbacks.

These are functions you define, passed as an argument and called by Blender whenever the property changes.


get - you can return the value and store it wherever you like.
set - you're responsible for making sure the new value is stored/modified.
update - is called after setting, often used to ensure related data is updated.


See: http://www.blender.org/api/blender_python_api_2_75_release/bpy.props.html#bpy.props.EnumProperty



In the example above, you would have to set the callback on the hdri property definition.