Как добавить дополнительный текст (или строку) в привязку в xaml

#c# #string #xaml #concatenation #binding-context

#c# #строка #xaml #конкатенация #привязка-контекст

Вопрос:

У меня есть это:

 <Label Text="{Binding Height}" AbsoluteLayout.LayoutBounds=".9,.17,-1,-1" TextColor="White" AbsoluteLayout.LayoutFlags="PositionProportional" HorizontalTextAlignment="Center" HorizontalOptions="Center" FontSize="Medium"/>
 

Очевидно, что {Высота привязки} занимает весь текст.

Привязка в настоящее время является двойной и должна оставаться такой, мне просто нужно объединить «m» в конце для представления метров.

Я пробовал {Высота привязки} m и {Высота привязки m}, но, очевидно, xaml работает не так, как работала бы обычная конкатенация строк.

Ответ №1:

Попробуйте использовать StringFormat . Вот так:

 Text="{Binding Height, StringFormat='{}{0}m'}"
 

Отредактировано для наглядности:

Вы можете написать все, что хотите, после {0} аргумента.

Например, приведенное выше приведет к таким значениям, как 25m, 10m и т.д.

Вы можете написать что-то вроде этого, если хотите:

 Text="{Binding Height, StringFormat='{}{0} is a good number.'}"
 

Приведенное выше приведет, например:

 10 is a good number.
 

Комментарии:

1. Это сработало отлично! Спасибо. Как бы мне добавить интервал? Я попытался просто добавить пробел между <…}m’>, изменив его на. <…} m’> но это не сработало … он по-прежнему печатался без пробела.

2. Привет, я отредактировал свой ответ. Дайте мне знать, если это ответит на ваш вопрос.

3. Отлично, спасибо. Может быть, тогда мне просто нужно было почистить свою программу. он не читал пробел. Однако я сделал еще одну строку для веса и ввел kg вместо m, и это сработало отлично.

Ответ №2:

Вы пробовали StringFormat ?

 <Label Text="{Binding Height, StringFormat={0}m}"
 

Комментарии:

1. К сожалению, этот оставил красные волнистые линии под текстом на странице xaml, которая не будет запускаться