XAML TextBlock XML:StringFormat以显示数字

时间:2011-10-12 20:42:14

标签: xml xaml string-formatting textblock

我的XML数据是:

<Num>12.6</Num>

我将它绑定到XAML TextBlock,并希望将值显示为没有小数点的舍入数字。因此,此值应显示为13.同样,12.2应显示为12,等等。

我需要下面的StringFormat中的代码(在......)来做我想要的事情:

<TextBlock Text= "{Binding Num, StringFormat=...}" />

感谢。

1 个答案:

答案 0 :(得分:1)

尝试使用转换器:

public class StringToDoubleConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        return double.Parse(value as string);
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

然后在xaml中,声明转换器:

<UserControl.Resources>
    <local:StringToDoubleConverter x:Key="StringToDoubleConverter"/>
</UserControl.Resources>

最后在绑定中使用它以及StringFormat:

<TextBlock Text= "{Binding Num, StringFormat=n0, Converter={StaticResource StringToDoubleConverter}}" />

n0中的零表示没有小数位(Standard Numeric Format Strings