Любой встроенный способ форматирования привязок 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
В дополнение к опубликованным ответам, всегда есть способ конвертации.