Your mapping strategy sounds like it'll work great. The problem you really need to solve is having pretty display names for your enum values.

See this question and answer on SO.

Essentially, you can switch from a enum or you can use C# properties to save and display additional information about each enum value.

Using either option, your dictionary is still going to use some kind of key mapping from a key code to an action. The dictionary is an ideal data structure for this kind of operation.

Custom key binding/mapping
In Once Upon a Time, when you use magic we usually see that magic looks like colored smoke/mist like in this picture.



Is there a symbolic meaning behind the different colors when using magic or is it just for show?

E.g. Rumplestilskins magic looks red, Zelenas is Green, Emmas is blue or maybe purple I think. Anyone know.
