You asked for a specific method, so I showed one way to do that. As for your question if there are alternatives? Sure.
If you want to use the original widget directly with the new method, it’s possible. But only if you put your new method directly in the original Slider widget class and rebuild the engine. You’d have a custom build though, but it would work. You’d have to copy it every time you update the engine and you’d be forced to build from source.
As to a solution in blueprint only using the original widget? Dunno. I can’t think of anything. Setting the value is easy. But you need access to MySlider and that’s protected. It’s not even a property. So that’s a no go.
You can always create a custom widget though. Drop a slider in it and pass through whatever you need and duplicate the properties you use. Then you can create your own dispatchers and you can control exactly when they are called. It’s basically just creating a new widget. It’s not the original. But it is viable and gives you the control you need. And it’s BP only. I have no idea what your requirements are, so you’ll have to decide if this is usable or not.
The only other alternative aside from that you said you couldn’t do. I didn’t quite understand the explanation. Unbinding and rebinding OnValueChanged is a valid alternative implementation to your new method in C++ though. I think I like what you have now better though. I don’t like messing with delegates if I don’t have to. But if they do change “Value” to be private, you can use this implementation to keep it working.