We put some data validation in PostEditChangeProperty which fixes up a property when another property is modified. Basically, property B’s validity is dependent on property A.
When property B is modified in PostEditChangeProperty, however, it does not update the actual display in the details window. I assume that there might be some kind of dirty flag needs to be set, or maybe even invalidate the entire layout, but I can’t figure out how to do so.
These properties happen to be GameplayTagContainers.
I’m having the same problem.
If PostEditChangeProperty is triggered because of a change on value A, it seems like A is the only value I can modify. (I want to modify B)
I’ve searched quite a bit online, but I haven’t found any answer.
Even code in unreal has this problem. The UI Sequencer → Render Movie Settings → Burn in Options → Settings has this same issue when toggling between burn in classes in 4.21
I’ve been able to work around this by using a timer inside PostEditChangeProperty to update my uproperty. In my case, I null out the property in PostEditChangeProperty, then set a new value in the callback. It would be nice if there was some way to do this without a timer, as it feels like a hack.
I had this problem, and the solution for me was to call through to Super::PostEditChangeProperty(PropertyChangedEvent)after making my change to the other value instead of doing that before making my change.