在TextBlock中使用绑定对文本进行硬编码
在WPF中,有没有办法让TextBlock
的Text
属性包含硬编码的文本和特定的绑定?
我想到的是以下几点(当然,下面不会编译) :
<TextBlock Text="Number of Fans: {Binding Artist.Fans.Count}"></TextBlock>
有,如果你在.net 3.5 SP1
<TextBlock Text="{Binding Path=Artist.Fans.Count, StringFormat='Number of Fans: {0}'}" />
在使用上述方法时:
<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>
使用Binding.StringFormat
:
<TextBlock Text="{Binding Artist.Fans.Count, StringFormat='Number of Fans: {0}'}"/>
这里的绑定值(clouds.all)加上“%”。 您可以在“\ {0 \}”之后添加所需的任何值。
<TextBlock Text="{Binding Path=clouds.all, StringFormat=\{0\}%}"/>