欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

WPF学习笔记(7):DataGrid中数字自定义格式显示

程序员文章站 2022-06-22 12:55:45
DataGrid中数据显示如下图,数据格式比较杂乱。希望达到以下要求:(1)所有数据保留两位小数;(2)超过1000的数字显示千分位;(3)如果数据为0,不显示。 首先想到用StringFormat进行格式化: 效果如下图,希望实现的要求(1)和(2)达到了,但(3)如果数据为0,不显示的要求没有达 ......

datagrid中数据显示如下图,数据格式比较杂乱。希望达到以下要求:(1)所有数据保留两位小数;(2)超过1000的数字显示千分位;(3)如果数据为0,不显示。

WPF学习笔记(7):DataGrid中数字自定义格式显示

首先想到用stringformat进行格式化:

 <datagridtextcolumn header="借方金额" binding="{binding path=fdebit, stringformat={}{0:n2}}" width="200" elementstyle="{staticresource dgcellrigth}"/>

 

效果如下图,希望实现的要求(1)和(2)达到了,但(3)如果数据为0,不显示的要求没有达到。

 

WPF学习笔记(7):DataGrid中数字自定义格式显示

改为以下方法再试(格式代码分3段,分别为正数格式、负数格式、0格式):

binding="{binding path=fdebit, stringformat={}{#,##0.00;-#,##0.00;#}}"

提示代码出错,删除掉格式代码中的逗号后则正常:

binding="{binding path=fdebit, stringformat={}{###0.00;-###0.00;#}}"

如此一来,虽然数字0不显示了,但千分位也不显示了。再次尝试将其中的花括号改为单引号,终于实现了预期要求。

<datagridtextcolumn header="借方金额" binding="{binding path=fdebit, stringformat='#,##0.00;-#,##0.00;#'}" width="200" elementstyle="{staticresource dgcellrigth}"/>

效果如下:

WPF学习笔记(7):DataGrid中数字自定义格式显示