在WPF中TextBlock的Text有時內容只需要改變個別數字,而不需要所以內容都修改,這時候就要使用StringFormat, 如: <TextBlock Text="I have xxx friends"/> 這裡面的xxx是個變數,那在Binding時應該怎樣寫呢 <TextBlock Te ...
- 在WPF中TextBlock的Text有時內容只需要改變個別數字,而不需要所以內容都修改,這時候就要使用StringFormat, 如: <TextBlock Text="I have xxx friends"/> 這裡面的xxx是個變數,那在Binding時應該怎樣寫呢
<TextBlock Text="{Binding FirendNumber, StringFormat='I have {0} firends'}"/>
但是個別控制項的字元串內容沒辦法直接使用StringFormat,例如Label,CheckBox等。
<Label Content="{Binding FirendNumber} ContentStringFormat='I have {0} firends'}"/>
這樣子結果出來只顯示綁定的FirendNumber欄位值。
-
當我們這樣寫的時候發現,編譯時會保存,後來經過分析,發現StringFormat只能對字元串進行操作,而Label的Content是Object類型的,
那怎麼辦呢,是不是說Label不能使用StringFormat呢,Label 的 Content 確實不能直接使用 StringFormat,
但是可以使用 Label 的 ContentStringFormat 屬性來完成,例子如下:
<Label Content="{Binding FirendNumber} ContentStringFormat='I have {0} firends'}"/>
-
當然你也可以嘗試使用控制項嵌套的方式來實現,代碼如下:在Label的Content中嵌套一個TextBlock:
<Label> <Label.Content> <TextBlock Text="{Binding FirendNumber,StringFormat=I have {0} firends}"/> </Label.Content> </Label>