XAML TextBlock XML:StringFormat显示数字
我的XML数据是:XAML TextBlock XML:StringFormat显示数字,xml,xaml,string-formatting,textblock,Xml,Xaml,String Formatting,Textblock,我的XML数据是: <Num>12.6</Num> 12.6 我将其绑定到XAML文本块,并希望将值显示为不带小数点的四舍五入数字。所以这个值应该显示为13。同样,12.2应显示为12,以此类推 我需要以下字符串格式的代码(在…)来执行我想要的操作: <TextBlock Text= "{Binding Num, StringFormat=...}" /> 谢谢。尝试使用转换器: public class StringToDoubleConverte
<Num>12.6</Num>
12.6
我将其绑定到XAML文本块,并希望将值显示为不带小数点的四舍五入数字。所以这个值应该显示为13。同样,12.2应显示为12,以此类推
我需要以下字符串格式的代码(在…)来执行我想要的操作:
<TextBlock Text= "{Binding Num, StringFormat=...}" />
谢谢。尝试使用转换器:
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();
}
}
<UserControl.Resources>
<local:StringToDoubleConverter x:Key="StringToDoubleConverter"/>
</UserControl.Resources>
然后在xaml中声明转换器:
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();
}
}
<UserControl.Resources>
<local:StringToDoubleConverter x:Key="StringToDoubleConverter"/>
</UserControl.Resources>
最后在绑定中与StringFormat一起使用:
<TextBlock Text= "{Binding Num, StringFormat=n0, Converter={StaticResource StringToDoubleConverter}}" />
n0中的零表示没有小数位数()尝试使用转换器:
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();
}
}
<UserControl.Resources>
<local:StringToDoubleConverter x:Key="StringToDoubleConverter"/>
</UserControl.Resources>
然后在xaml中声明转换器:
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();
}
}
<UserControl.Resources>
<local:StringToDoubleConverter x:Key="StringToDoubleConverter"/>
</UserControl.Resources>
最后在绑定中与StringFormat一起使用:
<TextBlock Text= "{Binding Num, StringFormat=n0, Converter={StaticResource StringToDoubleConverter}}" />
n0
中的零表示没有小数点()它仍然精确显示带小数点的字符串,并且没有舍入。我必须做任何形式的转换吗?我怀疑该值当前被视为字符串。我可能需要指定它是一个数字。谢谢,真奇怪。作为一名替身,这对我来说完美无瑕。尝试使用n2而不是n0来查看它是否显示2位小数。另外,Num的类型是什么?我没有指定Num的类型,只是它显示在文本块中。这是否意味着它是字符串类型?这就是为什么我想知道转换的原因。您不需要指定类型。它由绑定自动检测。这只在Num是double、decimal或float时才起作用。那么如何以及在何处指定Num是double、decimal或float呢?谢谢。它仍然精确地显示带小数点且不舍入的字符串。我必须做任何形式的转换吗?我怀疑该值当前被视为字符串。我可能需要指定它是一个数字。谢谢,真奇怪。作为一名替身,这对我来说完美无瑕。尝试使用n2而不是n0来查看它是否显示2位小数。另外,Num的类型是什么?我没有指定Num的类型,只是它显示在文本块中。这是否意味着它是字符串类型?这就是为什么我想知道转换的原因。您不需要指定类型。它由绑定自动检测。这只在Num是double、decimal或float时才起作用。那么如何以及在何处指定Num是double、decimal或float呢?谢谢