141

整数値 (この場合は摂氏温度) への一方向バインディングを持つ TextBlock を含む WPF 4 アプリケーションがあります。XAML は次のようになります。

<TextBlock x:Name="textBlockTemperature">
        <Run Text="{Binding CelsiusTemp, Mode=OneWay}"/></TextBlock>

これは実際の温度値を表示するのに問題なく機能しますが、この値をフォーマットして、数値だけではなく °C を含めるようにしたいと思います (30 ではなく 30°C)。私は StringFormat について読んでいて、次のような一般的な例をいくつか見てきました。

// format the bound value as a currency
<TextBlock Text="{Binding Amount, StringFormat={}{0:C}}" />

// preface the bound value with a string and format it as a currency
<TextBlock Text="{Binding Amount, StringFormat=Amount: {0:C}}"/>

残念ながら、私が見た例のどれも、私が行おうとしているように、バインドされた値に文字列を追加していません。それは単純なものでなければならないと確信していますが、私はそれを見つけることができません。誰かが私にそれを行う方法を説明できますか?

4

4 に答える 4

265

最初の例は、実際に必要なものです。

<TextBlock Text="{Binding CelsiusTemp, StringFormat={}{0}°C}" />
于 2013-10-09T17:22:05.197 に答える
124

文字列の途中に Binding がある場合、または複数のバインディングがある場合に、読みやすさのためにうまく機能する代替手段を次に示します。

<TextBlock>
  <Run Text="Temperature is "/>
  <Run Text="{Binding CelsiusTemp}"/>
  <Run Text="°C"/>  
</TextBlock>

<!-- displays: 0°C (32°F)-->
<TextBlock>
  <Run Text="{Binding CelsiusTemp}"/>
  <Run Text="°C"/>
  <Run Text=" ("/>
  <Run Text="{Binding Fahrenheit}"/>
  <Run Text="°F)"/>
</TextBlock>
于 2015-01-07T16:35:19.840 に答える