2010-09-30 16 views
22

wersje te działają zgodnie z oczekiwaniami:WPF: problemy StringFormat z etykietą

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

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

Kiedy próbuję go na etykiecie, StringFormat jest iqnored i otrzymuję „123,000000” zamiast „123”.

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

TotalUnits jest liczbą dziesiętną.

Co się dzieje?

Odpowiedz

47

Wszystko z właściwością Content ma specjalną właściwość ContentStringFormat, której należy użyć, zamiast określać StringFormat w powiązaniu.

Jak to:

<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> 
+0

że było, dziękuję. –

Powiązane problemy