Yea you can use existing enums for this. look at the EKeys.
EKeys::Gamepad_RightX
EKeys::Gamepad_RightY
EKeys::Gamepad_RightStick_Right
EKeys::Gamepad_RightStick_Left
EKeys::Gamepad_RightStick_Up
EKeys::Gamepad_RightStick_Down
EKeys::Gamepad_FaceButton_Right
You can directly compare “==” FKey to EKey.
I actually use FString very rarely (working with INI files, debugging).
Best advice I can give is don’t make “references” to things by string (don’t hardcode paths, don’t convert between a type to string or string to type if you can avoid it etc.). Your classes UMyGamepadKeyConverter and EMyGamepadKey can be deleted in favor of systems already present in the engine.
TEXT macro is unrelated to all this but has other uses (encoding).
Another thing that will help you with these cases, get Agent Ransack to search through engine source code. You’ll search on keywords like enumerator values and quickly find implementations like I showed.