I have this textbox:
It correctly displays 0.05 as 5
Adding to ChrisF's answer, the converter I ended up using (only for decimals):
class DecimalPercentageConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
return value;
}
public object ConvertBack(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
if (targetType != typeof(decimal) || value == null)
return value;
string str = value.ToString();
if (String.IsNullOrWhiteSpace(str))
return 0M;
str = str.TrimEnd(culture.NumberFormat.PercentSymbol.ToCharArray());
decimal result = 0M;
if (decimal.TryParse(str, out result)) {
result /= 100;
}
return result;
}
}