Saya memiliki aplikasi WPF 4 yang berisi TextBlock yang memiliki pengikatan satu arah ke nilai integer (dalam hal ini, suhu dalam derajat Celcius). XAML terlihat seperti ini:
<TextBlock x:Name="textBlockTemperature">
<Run Text="{Binding CelsiusTemp, Mode=OneWay}"/></TextBlock>
Ini berfungsi dengan baik untuk menampilkan nilai suhu sebenarnya tetapi saya ingin memformat nilai ini sehingga mencakup ° C daripada hanya angka (30 ° C, bukan hanya 30). Saya telah membaca tentang StringFormat dan saya telah melihat beberapa contoh umum seperti ini:
// format the bound value as a currency
<TextBlock Text="{Binding Amount, StringFormat={}{0:C}}" />
dan
// preface the bound value with a string and format it as a currency
<TextBlock Text="{Binding Amount, StringFormat=Amount: {0:C}}"/>
Sayangnya, tidak ada contoh yang saya lihat yang menambahkan string ke nilai terikat seperti yang saya coba lakukan. Saya yakin itu pasti sesuatu yang sederhana tetapi saya tidak beruntung menemukannya. Adakah yang bisa menjelaskan kepada saya bagaimana melakukan itu?
sumber
{}
?{
, ini menyediakan mekanisme untuk melarikan diri, karena{}
sudah memiliki arti di xaml.Berikut adalah alternatif yang berfungsi dengan baik agar mudah dibaca jika Anda memiliki Binding di tengah-tengah string atau beberapa binding:
sumber
0 °C ( 32 °F)
Harap perhatikan bahwa menggunakan StringFormat di Bindings sepertinya hanya berfungsi untuk properti "teks". Menggunakan ini untuk Label.Content tidak akan berfungsi
sumber
ContentStringFormat
datang untuk menyelamatkan, misalnya:Content="{Binding Path=TargetProjects.Count}" ContentStringFormat="Projects: {0}"
.HeaderStringFormat="{}{0} For Report"
Di xaml
Dalam
ViewModel
hal ini, pengaturan nilai juga berfungsi:sumber