WPF binding StringFormat syntax

bindingstring-formattingwpf

How can I format a decimal value conditionally in a WPF window?

  1. Value should be rounded to a whole number (Ex: 1,234)
  2. When the value is 0.00, it should display as a single zero. (Ex: 0)

Currently I use bellow mark up to format the decimal value, but it displays 00 when the value is 0.00. Please help.

<TextBlock
  Grid.Column="6"
  Padding="2"
  Text="{Binding Path=TotalAwardsExpended, StringFormat='{}{0:0,0}'}" />

Best Answer

The extra 0 comes from the 0 after the colon.

Instead, try {}{0:#,0}.

From the MSDN docs on Custom Numeric String formats (emphasis added):

"0" | Zero placeholder | Replaces the zero with the corresponding digit if one is present; otherwise, zero appears in the result string.

Related Topic