You want this data binding to produce a false value when the integer source is equal to 0, and true otherwise. Suppose you want to define a data binding where the source property is of type int but the target property is a bool. (The Universal Windows Platform contains a similar class named IValueConverter in the Windows.UI.Xaml.Data namespace, but this IValueConverter is in the Xamarin.Forms namespace.) Classes that implement IValueConverter are called value converters, but they are also often referred to as binding converters or binding value converters.
For other types of conversions, you need to write some specialized code in a class that implements the IValueConverter interface. In the String Formatting article, you saw how you can use the StringFormat property of a data binding to convert any type into a string. When that is not the case, a type conversion must take place.
This transfer is straightforward when the source and target properties are of the same type, or when one type can be converted to the other type through an implicit conversion. Data bindings usually transfer data from a source property to a target property, and in some cases from the target property to the source property.