2009-06-23 99 views
10

如何綁定單個TextBlock以表示「Hi,Jeremiah」?如何正確添加前綴(或後綴)到XAML中的數據綁定?

<TextBlock Text="Hi, {Binding Name, Mode=OneWay}"/> 

尋找一個優雅的解決方案。那裏有什麼?我試圖避免爲每個前綴/後綴組合編寫一個轉換器。

+0

看起來你接受的答案可能是WPF只有 - 你可能會刪除Silverlight標籤。 – 2009-06-23 21:23:33

回答

23

如果您只需要插入一個值,則可以使用Binding的StringFormat屬性。請注意,此需要.NET 3.5 SP1(或.NET 3.0 SP2),因此只有在可以指望擁有最新Service Pack的生產環境時才使用它。

<TextBlock Text="{Binding Name, Mode=OneWay, StringFormat='Hi, {0}'}"/> 

如果你想插入兩個或多個不同的界限值,我通常只是做與包含多個的TextBlocks,例如方向=「橫向」一個StackPanel:

<StackPanel Orientation="Horizontal"> 
    <TextBlock Text="Good "/> 
    <TextBlock Text="{Binding TimeOfDay}"/> 
    <TextBlock Text=", "/> 
    <TextBlock Text="{Binding Name}"/> 
    <TextBlock Text="!"/> 
</StackPanel> 
+1

確保你已經安裝了3.5SP1來使用它。 – rmoore 2009-06-23 19:31:23

+0

謝謝!它非常棒! – Jeremiah 2009-06-23 19:31:59

0

我認爲這應該做到這一點。

<TextBlock> 
    <TextBlock Text="Hi, " /> 
    <TextBlock Text="{Binding Name, Mode=OneWay}" /> 
</TextBlock> 
1

校正(未成年人)@Joe白的解決方案

<TextBlock Text="{Binding Name, Mode OneWay, StringFormat='Hi {0}}'"/> 

單引號都需要申請的StringFormat成功
爲我工作:)

相關問題