Связывание WPF с помощью StringFormat - PullRequest
7 голосов
/ 03 мая 2011

Эй, ребята, кто-нибудь может объяснить мне, почему это не выдает "VALUE IS DEFAULT"?

<TextBlock Text="{Binding Fail, StringFormat=VALUE IS {0}, FallbackValue=DEFAULT}" />

Есть что-то хитрое в этом синтаксисе, который я пропускаю. Заранее спасибо.

Ответы [ 3 ]

7 голосов
/ 03 мая 2011

Привязка в WPF не учитывает StringFormat при возврате к FallbackValue в случае сбоя.

Вы можете использовать то, что Леон предложил или пойти с PriorityBinding .

- EDIT -

Это должно работать:

<TextBlock DataContext="{Binding Fail, FallbackValue=DEFAULT}" Text="{Binding StringFormat=VALUE IS {0}}" />
1 голос
/ 04 мая 2011

Я думаю, что это также может работать с использованием прогонов внутри TextBlock:

     <TextBlock>
             <Run Text="Value is : "/>
             <Run Text="{Binding Fail,FallbackValue=Default}"/>
     </TextBlock>

?

0 голосов
/ 03 мая 2011

Резервное значение по умолчанию используется для привязок приоритетов, если вы хотите отобразить «VALUE IS DEFAULT» для резервного значения, попробуйте следующее.

<TextBlock Text="{Binding Fail, StringFormat=VALUE IS {0}, FallbackValue='VALUE IS DEFAULT'}" />
...