How property binding is working?

I mean how can I create my own property binding system in my custom blueprint?
I want to bind a property value to function, in that function I can use other properties of blueprint. So when some property chanched all dependent properties will change too.
I know that it realised in UMG and I can get sourse code… but may be some advices?