Post #1391:  you can add a new StringProperty with these Getter and Setter slots:
# Getter:
return C.active_object.get(menu, "Default Value")
# Setter:
C.active_object[menu] = value
Where menu is the name of the string property.
draguu:
how do i add conditions like , if bool prop is on , only then show this enum prop
You can do this in Custom tab using props() function:
L.prop(props(), "MyEnum") if props("MyBool") else None