• 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"/>
    

    在这里插入图片描述

  • 相关阅读:
    babel:无法将“babel“项目识别问题
    某华为外包功能测试花四个月时间学习自动化测试成功拿下25k15薪offer
    Memcached
    jdk静态代理和动态代理
    A40I工控主板(SBC-X40I)串口通信测试
    一文理清JVM结构
    聚观早报 | 马斯克或将推出推特竞品;亚马逊推广“挥手付”功能
    学习笔记13--车辆电子电气架构技术
    Java Number类
    Django常见面试题总结(二)
  • 原文地址:https://blog.csdn.net/qq_39427511/article/details/139862933