Каков правильный синтаксис для использования StringFormat с одиночным связыванием? - PullRequest
5 голосов
/ 18 июня 2009

Я могу заставить MultiBinding работать с StringFormat:

<TextBlock.Text>
    <MultiBinding StringFormat="{}{0} {1} (hired on {2:MMM dd, yyyy})">
        <Binding Path="FirstName"/>
        <Binding Path="LastName"/>
        <Binding Path="HireDate"/>
    </MultiBinding>
</TextBlock.Text>

Но каков правильный синтаксис для одиночной привязки? Следующее не работает (хотя, похоже, тот же синтаксис, что и в этом примере ):

<TextBlock Text="{Binding Path=HiredDate, StringFormat='{MMM dd, yyyy}'}"/>

ОТВЕТ:

Спасибо, Мэтт, мне нужна была комбинация из двух ваших ответов, это прекрасно работает:

<TextBlock Text="{Binding Path=HiredDate, 
    StringFormat='Hired on {0:MMM dd, yyyy}'}"/>

1 Ответ

10 голосов
/ 18 июня 2009

Вы хотите оставить фигурные скобки вне строки формата в вашем примере, потому что вы не используете их в качестве заполнителя (как если бы вы использовали "{0}" в String.Format ()).

Итак:

<TextBlock Text="{Binding Path=HiredDate, StringFormat='MMM dd, yyyy'}"/>

Если вы хотите сослаться на значение заполнителя где-то внутри строки, вы можете сделать это, выбрав фигурные скобки с обратной косой чертой:

<TextBlock Text="{Binding Path=HiredDate, StringFormat='Hired on \{0\}'}"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...