Использовать StringFormat, чтобы добавить строку в XAML в WPF привязки
у меня есть приложение WPF 4, которое содержит текстовый блок, который имеет одностороннюю привязку к целочисленному значению (в данном случае температура в градусах Цельсия). XAML выглядит так:
<TextBlock x:Name="textBlockTemperature"><Run Text="{Binding CelsiusTemp, Mode=OneWay}"/></TextBlock>
Это отлично работает для отображения фактического значения температуры, но я хотел бы отформатировать это значение, чтобы оно включало °C вместо просто числа (30°C вместо всего 30). Я читал о StringFormat и я видел несколько примеров, как это:
// format the bound value as a currency
<TextBlock Text="{Binding Amount, StringFormat={}{0:C}}" />
и
// preface the bound value with a string and format it as a currency
<TextBlock Text="{Binding Amount, StringFormat=Amount: {0:C}}"/>
к сожалению, ни один из примеров, которые я видел, не добавил строку к связанному значению, как я пытаюсь сделать. Я уверен, что это должно быть что-то простое, но мне не повезло найти его. Может кто-нибудь объяснить мне, как это сделать?
4 ответа:
ваш первый пример-это то, что вам нужно:
<TextBlock Text="{Binding CelsiusTemp, StringFormat={}{0}°C}" />
вот альтернатива, которая хорошо работает для чтения если у вас есть привязка в середине строки или несколько Привязок:
<TextBlock> <Run Text="Temperature is "/> <Run Text="{Binding CelsiusTemp}"/> <Run Text="°C"/> </TextBlock> <!-- displays: 0°C (32°F)--> <TextBlock> <Run Text="{Binding CelsiusTemp}"/> <Run Text="°C"/> <Run Text=" ("/> <Run Text="{Binding Fahrenheit}"/> <Run Text="°F)"/> </TextBlock>