Thursday, May 19, 2011

XAML И DATA BINDING: ЕЩЕ РАЗ ПРО STRINGFORMAT

STRINGFORMAT И СТРОКИ

Казалось бы, какие могут быть особенности при связывании строки в XAML. А ведь есть. Даже, по правде сказать, не столько “особенности”, сколько “полезности”. Итак, поехали. Давайте на форму поместим какой-нибудь контрол, как предмет для издевательств, а далее просто примеры применения.

<TextBlock x:Name="userControl" Text="Полезный параметр StringFormat"/>

Пример 1: Связывание произойдет и строка будет содержать как минимум 15 символов. Дополнительные (недостающие до 15) символы пробелов будут подставлены с начала и с конца строки.

<TextBlock Text="{Binding Text, StringFormat=\{0\,15\}, ElementName=userControl}"/>

Пример 2: Связывание произойдет и строка будет содержать как минимум 25 символов. Дополнительные (недостающие до 25) символы пробелов будут подставлены с начала и с конца строки.

<TextBlock Text="{Binding Text, StringFormat=\{0\,25\}, ElementName=userControl}"/>

Пример 3: Значение свойства Text контрола userControl будет являться цитатой, то есть будет отображено в кавычках.

<TextBlock Text="{Binding Text, 
          StringFormat='Цитата &quot;\{0\}&quot; в кавычках', 
          ElementName=userControl}"/>

STRINGFORMAT И ЦИФРЫ

Формат вывода цифр тоже можно контролировать. Опять же просто приведу примеры, потому как именно по этой причине мы тут и собрались. Итак, у нас есть:

<TextBlock x:Name="userControl" Text="[какое-то double значение]" />

Примечание

Если просто написать вместо [какое-то double значение], то оно воспримется как текст, поэтому важно именно привязать (через Binding) это значение.