Как правильно добавить префикс (или суффикс) к привязке данных в XAML? - PullRequest
11 голосов
/ 23 июня 2009

Как мне связать один текстовый блок, чтобы сказать «Привет, Иеремия»?

<TextBlock Text="Hi, {Binding Name, Mode=OneWay}"/>

В поисках элегантного решения. Что там? Я стараюсь не писать конвертер для каждой комбинации префикса / суффикса.

Ответы [ 3 ]

29 голосов
/ 23 июня 2009

Если у вас есть только одно значение, которое вам нужно вставить, вы можете использовать свойство Binding StringFormat . Обратите внимание, что для этого требуется .NET 3.5 SP1 (или .NET 3.0 SP2), поэтому используйте его, только если вы можете рассчитывать на свою производственную среду, имеющую последний пакет обновления.

<TextBlock Text="{Binding Name, Mode=OneWay, StringFormat='Hi, {0}'}"/>

Если вы хотите вставить два или более различных связанных значений, я обычно просто создаю StackPanel с Orientation = "Horizontal", который содержит несколько текстовых блоков, например:

<StackPanel Orientation="Horizontal">
    <TextBlock Text="Good "/>
    <TextBlock Text="{Binding TimeOfDay}"/>
    <TextBlock Text=", "/>
    <TextBlock Text="{Binding Name}"/>
    <TextBlock Text="!"/>
</StackPanel>
2 голосов
/ 26 декабря 2017

коррекция (незначительная) к решению @Joe White

<TextBlock Text="{Binding Name, Mode OneWay, StringFormat='Hi {0}}'"/>

одиночные кавычки необходимы для успешного применения строкового формата
работал для меня:)

0 голосов
/ 23 июня 2009

Я думаю, что это должно сделать.

<TextBlock>
    <TextBlock Text="Hi, " />
    <TextBlock Text="{Binding Name, Mode=OneWay}" />
</TextBlock>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...