ah i missed that you want runtime key rebinds.
I took a look and the Lyra project which uses commonUI has key rebinding. I dont know how they are doing it, but you could look in there and probably get some idea.
I know that it is possible to change data tables at runtime - I believe there is some blueprint plugins on marketplace but otherwise it requires some c++ from what I’ve read.
One other option - there is quite a few UI systems on the marketplace that have runtime key binding. This is accomplished in many different ways, but somewhere you end up with reference to a key and it’s associated with input action/axis. So that is all you need to select some images from.
I would call this the simplest solution because it means you can just grab an existing, blueprint only example, and all you got to do is find the function where rebinding happens and then find a way to get that key reference and store it somewhere your widget can access. The you can make your own image switcher which just gets that reference and switches the image based on what input action you want it to represent.