2010-07-02 2 views
17

Как можно условно отформатировать десятичное значение в окне WPF?WPF-привязка Синтаксис StringFormat

  1. Значение должно быть округлены до целого числа (например: 1,234)
  2. Если значение равно 0,00, оно должно отображаться в виде одного нуля. (Пример: 0)

В настоящее время я использую нижний знак, чтобы отформатировать десятичное значение, но оно отображает 00, когда значение равно 0,00. Пожалуйста помоги.

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

Вы можете найти здесь. Это поможет вам http://www.kunal-chowdhury.com/2011/05/formatting-text-in-silverlight-xaml.html – R76

ответ

50

Дополнительный 0 происходит от 0 после толстой кишки.

Вместо этого попробуйте {}{0:#,0}.

Из MSDN docs on Custom Numeric String formats (курсив добавлен):

"0" | Zero placeholder | Заменяет нуль соответствующей цифрой, если она присутствует; в противном случае в строке результата появляется.

+1

Спасибо, это работает – m00sila

+13

Прохладный. Не стесняйтесь отмечать это как ответ, чтобы другие могли извлечь выгоду. И поэтому я получаю свои очки. ;) – codekaizen

+1

любая идея, как вы можете заполнить пробелы, чтобы сохранить числа в своих местах (т. Е. Чтобы они не сдвигались с изменением числа)? Мой контент сосредоточен, поэтому смещение вызывает раздражение. Использование чего-то типа {0: 00000.0} работает, но ведущие 0 - глупые. Я пробовал #### 0.0, но это не поддерживало заполнение. OP не отметил это как ответ, но я дал вам +1. :) – Dave