2009-06-23 15 views
10

「Hi、Jeremiah」と言うように単一のTextBlockをどのようにデータバインドするのですか?XAMLのデータバインディングに接頭辞(または接尾辞)を正しく追加するにはどうすればよいですか?

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

優雅な解決策を探しています。そこには何がありますか?私は各接頭辞/接尾辞の組み合わせのためのコンバータを書くことから遠ざかるように努めています。

+0

あなたの受け入れ答えはWPFかもしれように見えますSilverlightタグを削除することがあります。 –

答えて

23

挿入する必要がある値が1つしかない場合は、BindingのStringFormatプロパティを使用できます。このには.NET 3.5 SP1(または.NET 3.0 SP2)が必要なので、最新のサービスパックを使用している本稼動環境を利用できる場合にのみ使用してください。

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

これを使用するには3.5SP1がインストールされていることを確認してください。 – rmoore

+0

ありがとうございました!それはすばらしく働いた! – Jeremiah

+0

@rmoore:いいキャッチ。私はそれを際立たせるために私の答えを編集しました。 –

0

が、私はこれはすべきだと思う:あなたは、私は通常は例えば、複数のテキストブロックが含まれている向き=「横」とのStackPanelをする二つ以上の異なる境界値を挿入したい場合は

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

それをやる。 @Joeホワイトのソリューションへ

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

Joe WhiteのStringFormatソリューションがおそらく道のりです。私はそれについて忘れてしまった。 –

1

補正(マイナー)

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

単一引用符が正常に
が私のために働いたstringformatを適用するために必要とされる:)

関連する問題