如果你只是使用像{0:F2}%
字符串格式,那么你将不得不忍受与数据库值像4.23代表4.23%这是我无法接受的(直到他们将“百分比”数据类型引入到SQL Server中)。
我创建了下面的值转换成百分比值在TextBox喜欢4.2367%喜欢0.042367映射到数据库值:
public class PercentageConverter : IValueConverter
{
//E.g. DB 0.042367 --> UI "4.24 %"
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var fraction = decimal.Parse(value.ToString());
return fraction.ToString("P2");
}
//E.g. UI "4.2367 %" --> DB 0.042367
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
//Trim any trailing percentage symbol that the user MAY have included
var valueWithoutPercentage = value.ToString().TrimEnd(' ', '%');
return decimal.Parse(valueWithoutPercentage)/100;
}
}
注意如何格式化字符串(在这种情况下,“P2”)唯一的限制是如何许多小数位显示,许多小数位不是如何传递到底层绑定源。
确定找到了解决的StringFormat = {} {0:F2}% –
你可以发表你的解决方案作为一个答案,并接受呢?为了将来的参考 – SynerCoder