欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > WPF文本绑定显示格式StringFormat设置-数值类型处理

WPF文本绑定显示格式StringFormat设置-数值类型处理

2025/4/2 8:27:01 来源:https://blog.csdn.net/qq_39427511/article/details/139862933  浏览:    关键词:WPF文本绑定显示格式StringFormat设置-数值类型处理

绑定显示格式设置

在Textblock等文本控件中,我们经常要绑定一些数据类型,但是我们希望显示的时候能够按照我们想要的格式去显示,比如增加文本前缀,后面加单位,显示百分号等等,这种就需要对绑定格式进行处理

<TextBlock HorizontalAlignment="Left" Margin="119,42,0,0" TextWrapping="Wrap" Text="{Binding Value}" VerticalAlignment="Top"/>

在这里插入图片描述

本文主要介绍一些数值类型的格式处理

StringFormat格式

StringFormat=前文字{0:X}后文字

说明:

X为对应的功能的代码,如写C为货币格式,前面加$

如果没有前文字,则前面换成{} ,格式:{}{0:X}后文字

如下对不同功能进行列举示例

整数固定位数

整数D,仅支持整形类型,double等无效,文本不显示

固定位数:{}{0:Dn},n为位数,小于原来位数,则不起作用,n大于原始数据位数,则用0补充

<TextBox Text="{Binding Count, StringFormat={}{0:D6}}" /> 

示例:

 public int Number { get; set; }Number = 15;

显示效果:

<TextBlock HorizontalAlignment="Left" Margin="44,35,0,0" TextWrapping="Wrap" Text="{Binding Number}" VerticalAlignment="Top"/>
<TextBlock HorizontalAlignment="Left" Margin="44,200,0,0" TextWrapping="Wrap" Text="{Binding Number,StringFormat={}{0:D6}}" VerticalAlignment="Top"/>

在这里插入图片描述

小数

· 指定小数点后的位数{}{0:F4},4为小数点位数

<TextBox Text="{Binding Total, StringFormat={}{0:F4}}" /> 

· 用分号隔开的整数部分每三位加一个分号,并指定小数点后的位数

<TextBox Text="{Binding Total, StringFormat={}{0:N3}}" /> 

示例

数据:

    public double Value { get; set; }Value = 231341145.312454858;

效果:

<TextBlock HorizontalAlignment="Left" Margin="119,42,0,0" TextWrapping="Wrap" Text="{Binding Value}" VerticalAlignment="Top"/>
<TextBlock HorizontalAlignment="Left" Margin="119,81,0,0" TextWrapping="Wrap" Text="{Binding Value,StringFormat={}{0:F6}}" VerticalAlignment="Top"/>
<TextBlock HorizontalAlignment="Left" Margin="119,117,0,0" TextWrapping="Wrap" Text="{Binding Value, StringFormat={}{0:N6}}" VerticalAlignment="Top"/>

在这里插入图片描述

货币格式

· 货币格式{}{0:C} ,默认设置为2位小数

<TextBlock Text="{Binding Price, StringFormat={}{0:C}}" /> 

· 货币格式,小数点设置{}{0:Cn},N为小数点位数

如下,设置小数点1位

<TextBox Text="{Binding Price, StringFormat={}{0:C1}}" /> // $123.5

示例

绑定数据:

   public double Pirce { get; set; }Pirce = 15.223;  //decimal或者其他类型也可以

显示效果:

 <TextBlock HorizontalAlignment="Left" Margin="44,114,0,0" TextWrapping="Wrap" Text="{Binding Pirce,StringFormat={}{0:C}}" VerticalAlignment="Top"/><TextBlock HorizontalAlignment="Left" Margin="44,159,0,0" TextWrapping="Wrap" Text="{Binding Pirce,StringFormat={}{0:C1}}" VerticalAlignment="Top"/>

在这里插入图片描述

占位符

需要同时指定整数和小数部分位数,格式如下,有两种写法,效果不同

使用0为占位符,整数部分不足,会用0自动填充;使用#为占位符,整数部分不会自动填充

<TextBox Text="{Binding Value, StringFormat={}{0:0000.000}}" /> 
<TextBox Text="{Binding Value, StringFormat={}{0:####.###}}" /> 

测试效果:

在这里插入图片描述

百分比

显示百分比P,格式:{}{0:Pn},n为小数点位数

注意:百分比会需要在数据中输入实际数值大小,如输入1,就是100%,0.12→12%,如果输入12,则是1200%

<TextBox Text="{Binding Persent, StringFormat={}{0:P1}}" /> 

示例:

    public double Value { get; set; }Value =  1.122;

效果:

<TextBlock HorizontalAlignment="Left" Margin="119,42,0,0" TextWrapping="Wrap" Text="{Binding Value}" VerticalAlignment="Top"/>
<TextBlock HorizontalAlignment="Left" Margin="119,81,0,0" TextWrapping="Wrap" Text="{Binding Value,StringFormat={}{0:P2}}" VerticalAlignment="Top"/>

在这里插入图片描述

前文字

格式:xxxx{0:X}前面xxxx为自定义的文字内容,后面跟上面用法一样,如果后面数据内容不处理,则为xxxx{0},{0}代表数据本身

<TextBox Text="{Binding Price, StringFormat=xxxx{0:P}}" /> 
示例
<TextBlock Text="{Binding Value,StringFormat=百分比{0:P2}}" />

效果:

在这里插入图片描述

后文字

格式:{}{0}xxxx,在后面添加文字,其他的规则一样

<TextBox Text="{Binding Price, StringFormat={}{0}xxxx}" /> 

效果:
在这里插入图片描述

前后都加

格式:xxxx{0}xxxx

 <TextBlock  Text="{Binding Value,StringFormat=长度:{0}米}" VerticalAlignment="Top"/>

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词