2013-02-21 14 views
5

Bir numaram var 1234567.89. Numara bir WPF TextBlock'ta görüntülenir. Ben uygulamak çalışıyorum StringFormatText özelliğine niteliğini numarası gibi görüntülenebilir böylece:Bir bağlamadaki varsayılan bin ve ondalık ayırıcıyı değiştirme

1.234.567,89 

Gördüğünüz gibi, bin ve ondalık ayırıcıları değişmez kültür şartname ters çevrilir.

StringFormat için çok sayıda kombinasyon ayarlamayı denedim, ancak başarılı olmadı. En son geldiğim en son:

Text="{Binding SomeBinding, StringFormat={}{0:#'.'##0','00}}" 

Ancak çıktı doğru değil. Ayrıca, N2 kullanarak veya kültürü değiştirmek bir seçenek değildir. Mümkünse dönüştürücülerden kaçınmak istiyorum.

Varsayılan ayırıcıları XAML aracılığıyla değiştirmenin bir yolu var mı?

cevap

8

kültürünü değiştirmek zorunda değilsiniz. Sadece belirtilen kültürle String.Format kullanmak (de-DE ince olmalıdır):

string output = String.Format(new CultureInfo("de-DE"), "{0:N}", yourDoubleValue); 

Çıktı: XAML yapmak istiyorsanız 9.164,32

, sen deneyebilirsiniz:

Text="{Binding SomeBinding, StringFormat={}{0:N}, ConverterCulture=de-DE}" 
+0

bence XAML'deki her şeyi yapmaya çalışıyor ve en azından özel dönüştürücü biçiminde, bazı C# 'leri yakmadan bunun nasıl yapılacağını anlamıyorum. – Woodman

+0

'StringFormat = N2, ConverterCulture = de' kombinasyonu, herhangi bir ek kod olmadan istenen çıktıyı oluşturacaktır. – Clemens

+0

@Clemens Yorumunuz için teşekkürler. Kodu test edemiyorum, önerim –

İlgili konular