Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WPF: StringFormat problems with a Label

Tags:

These versions work as expected:

<DataGridTextColumn Header="Total Units" Binding="{Binding TotalUnits, Mode=OneWay, StringFormat=N0}"/>  <TextBlock Text="{Binding TotalUnits, Mode=OneWay, StringFormat=N0}"/> 

When I try it with a label, the StringFormat is iqnored and I get "123.000000" instead of "123".

<Label Content="{Binding TotalUnits, Mode=OneWay, StringFormat=N0}"/> 

TotalUnits is a Decimal.

So, what's going on?

like image 808
Jonathan Allen Avatar asked Sep 30 '10 00:09

Jonathan Allen


Video Answer


1 Answers

Anything with a Content property has a special ContentStringFormat property you have to use rather than specifying the StringFormat in the Binding.

Like this:

<Window.Resources xmlns:sys="clr-namespace:System;assembly=mscorlib">     <sys:Int16 x:Key="MyValue">100</sys:Int16> </Window.Resources>  <StackPanel DataContext="{StaticResource MyValue}">      <!-- using Label -->     <Label Content="{Binding}" ContentStringFormat="{}{0:C}" />      <!-- using TextBlock-->     <TextBlock Text="{Binding, StringFormat={0:C}}" />  </StackPanel> 
like image 182
Bryan Anderson Avatar answered Oct 06 '22 07:10

Bryan Anderson