WPF already includes some value converters but in most cases you will need to write your own by implementing the override.
When a binding is established and the data or your business model changes, then it reflects the updates automatically to the UI elements and vice versa.
WPF provides a simple and powerful way to auto-update data between the business model and the user interface. Everytime when the data of your business model changes, it automatically reflects the updates to the user interface and vice versa.
This is the preferred method in WPF to bring data to the user interface. The target property of the binding must be a Dependency Property.
I had a little play and converted my code to be Enum agnostic:public class Enum To String Converter : IValue Converter One of the things I noticed was that you use the 'Converter Parameter' to pass in the type, but you don't need to as the 'target Type' argument is the type.
I had a look at your code, and it's good to get the dependency on a specific Enum removed.