WPF: проблемы StringFormat с меткой - PullRequest
22 голосов
/ 30 сентября 2010

Эти версии работают должным образом:

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

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

Когда я пробую это с меткой, StringFormat игнорируется, и я получаю "123.000000" вместо "123".

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

TotalUnits - это десятичное число.

Итак, что происходит?

1 Ответ

47 голосов
/ 30 сентября 2010

Все, что имеет свойство Content, имеет специальное свойство ContentStringFormat, которое вы должны использовать вместо указания StringFormat в привязке.

Например:

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...