Label ContentStringFormat

Why StringFormat on a WPF Label’s binding does nothing, and the property that does.

From the archive. First published on the Programming Recipes blog on 30 March 2012. Kept as it was written, so details may have moved on since.

OriginalArchived copy

Again this morning struggled with something I knew I had struggled with before this time I am in WPF XAML trying to set a StringFormat on my binding to get it formatted as a 2 decimal:

<Label Content="{Binding SelectedObject.DoubleNumber, StringFormat=N2}"/>

Running my view it is not showing me what I want to see; in this case showing 17.877651246, then I suddenly remembered that the Label control has its own way of dealing with StringFormat with the ContentStringFormat property:

<Label ContentStringFormat="N2" Content="{Binding SelectedObject.DoubleNumber}" />

The view is giving me 17.88 awesome!

I hope I remember this now actually makes a bit sense; I am setting the Content so setting the Content => StringFormat .. aah