2009-04-25 6 views
35

В WPF существует ли способ иметь свойство TextTextBlock, содержащее как текст с жесткой кодировкой, так и конкретную привязку?Имея жестко закодированный текст со связыванием в TextBlock

То, что я имею в виду что-то вдоль линий следующего (конечно, ниже не компилировать):

<TextBlock Text="Number of Fans: {Binding Artist.Fans.Count}"></TextBlock> 

ответ

65

Существует, если вы на .Net 3.5 SP1

<TextBlock Text="{Binding Path=Artist.Fans.Count, 
       StringFormat='Number of Fans: {0}'}" /> 
+1

Возможно ли использовать несколько выходов, аналогичных args [] в строке.Format ([1], [2], [3], ... [n])? –

+1

он отсутствует escaping \ {0 \} –

3

Использование Binding.StringFormat:

<TextBlock Text="{Binding Artist.Fans.Count, StringFormat='Number of Fans: {0}'}"/> 
+0

hi Danko - вы знаете, как заставить его работать с синтаксисом элемента свойства? – BKSpurgeon

24

При использовании вышеописанный подход:

<TextBlock Text="{Binding Path="Artist.Fans.Count", 
        StringFormat='Number of Fans: {0}'}" /> 

Я нашел несколько ограничительных, что я не мог найти способ жирного шрифта внутри StringFormat я не мог использовать апостроф в StringFormat.

Вместо этого я пошел с этим подходом, который работал лучше для меня:

<TextBlock TextWrapping="Wrap"> 
    <Run>The value</Run> 
    <Run Text="{Binding Path=MyProperty1, Mode=OneWay}" FontWeight="Bold" /> 
    <Run>was invalid. Please enter it with the format... </Run> 
    <LineBreak/><LineBreak/> 
    <Run>Here is another value in the program</Run> 
    <Run Text="{Binding Path=MyProperty2, Mode=OneWay}" FontWeight="Bold" /> 
</TextBlock>      
1

Здесь связывающего значение (clouds.all) добавляются с «%». Вы можете добавить любое значение после «\ {0 \}».

<TextBlock Text="{Binding Path=clouds.all, StringFormat=\{0\}%}"/> 
+0

Не могли бы вы [редактировать] объяснить, почему этот код отвечает на вопрос? Кодовые ответы [обескуражены] (http://meta.stackexchange.com/q/148272/274165), потому что они не учат решению. –

+0

@ Nathan Я редактирую свой ответ. Это полезно сейчас? Спасибо за ваш совет. –

Смежные вопросы