Любой встроенный способ форматирования привязок WPF?

сценарий

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

public int PersonNumber { get; set; }

Это свойство связано с меткой в ​​XAML:

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

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

Вопросы

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

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

4 ответа

Решение

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

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

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

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

public int PersonNumber { get; set; }
public string PersonNumberText { get { return ... } }

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

Nice example: http://blogs.msdn.com/b/mikehillberg/archive/2008/05/29/trying-out-binding-stringformat.aspx

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

Другие вопросы по тегам