Любой встроенный способ форматирования привязок WPF? - PullRequest
0 голосов
/ 03 августа 2011

Сценарий

Не получается найти способ форматирования привязок в WPF с использованием IFormatProvider . В настоящее время у меня есть свойство в моем источнике данных:

public int PersonNumber { get; set; }

Это свойство привязано к метке в XAML:

<Label Content="{Binding Path=PersonNumber}" />

Как видите, это число, но его следует отформатировать как 0000.00.000. В настоящее время мы используем отдельный IFormatProvider для таких вещей в нашем старом приложении WinForms.

Вопросы

  • Возможно ли такое форматирование в WPF?
    • Если да, наш предпочтительный способ - все еще использовать IFormatProvider, также возможно?
    • Если нет, что является хорошей альтернативой?

Заранее спасибо!

Ответы [ 4 ]

4 голосов
/ 03 августа 2011

Вы ищете свойство ContentStringFormat , которое имеется у всех потомков ContentControl, включая Label.

<Label Content="{Binding PersonNumber}" ContentStringFormat="000" />

Я не уверен, что форматирование WPF может использовать IFormatProvider.

3 голосов
/ 03 августа 2011

И чтобы завершить, вы можете просто добавить свойство String в вашу ViewModel, чтобы получить полный контроль в C #:

public int PersonNumber { get; set; }
public string PersonNumberText { get { return ... } }
1 голос
/ 03 августа 2011

В дополнение к опубликованным ответам всегда есть способ конвертации.

1 голос
/ 03 августа 2011

Вы можете использовать свойство StringFormat из Binding

Хороший пример: http://blogs.msdn.com/b/mikehillberg/archive/2008/05/29/trying-out-binding-stringformat.aspx

...