UMG Binding to C++ Property

I’m trying to make the inventory blueprint tutorial in c++ and found something “issue” with the property-binding.

We can bind a boolean property to a function or to a boolean variable. The bindable variable can only be declared / created in the blueprint and not in the parent c++ class. It this some kind of bug, just not trivial to implement or do i miss something?

The UMG-Blueprint has my own UUserWidget-Class as a parent class and contains a property:

/** Is the inventory open and active? */
UPROPERTY(EditAnywhere, BlueprintReadWrite)
uint32 bIsInventoryActive : 1;

I know that the workaround is a function (in the blueprint) that just returns my “bIsInventoryActive”.

Looking forward to some discussion or help. :slight_smile:

EDIT - Here some images:

We can see both properties from BP and the Parent C+±Class.

27422-designer-panel_binding.png

In the Designer Panel we can only see a direct property binding from the Blueprint-Variable, no from the C+±Parent-Class.

When you bind variable you should see it in the variable list of blueprint that inherent the C++ class, there should be checkbox there to show inherent varables, does that work for you?

I see the variable in the Graph-Panel (with the checkbox checked), but not in the Designer-Panel where i actually would select the direct binding.

I would like to know if this will ever be supported.
Bindings being BP-only means a lot of silly boilerplate wiring in the BP when your project is primarily c++.

Designer Panel? you tried to drug and drop?

Hi, The property needs to be declared like this:

UPROPERTY(EditDefaultsOnly,
BlueprintReadOnly, Category = “State”)

float Energy;

Regards

Same here, definitly !

We have not heard back from you in a while, so i’ll go and mark this question as resolved.

Fell free to reopen it if the problem still persists!

Can you please clarify the key difference between your proposed solution and the code in the original question? There is different type, different accessibility but none of these changed seem to work for me. Thanks