stringa di formato di default in Silverlight
-
09-10-2019 - |
Domanda
Ho una doppia, ad esempio
double d = 4.323d;
E voglio visualizzarlo in un TextBlock su un'applicazione Silverlight 4, ma il display dovrebbe essere questo:
4.32
E non posso cambiare la StringFormat sulla sorta di legame.
L'eccezione è che se il numero è questo:
double d2 = 4d;
Poi si dovrebbe visualizzare
4
, non 4.00
.
E il peggio eccezione è che si dovrebbe prendere in considerazione la lingua dell'interfaccia utente corrente, il che implica che se l'applicazione viene distribuito negli Stati Uniti si dovrebbe usare un .
come separatore decimale e in Europa dovrebbe usare un ,
(bene non nel Regno Unito, ma si ottiene il punto ...)
ho potuto impostare la DefaultFormat a #.##
se fossi in grado di cambiare lo StringFormat, ma voglio farlo attraverso CultureInfo
Soluzione
ho intenzione di assumere per il momento che si crede non è possibile utilizzare StringFormat nel legame perché non usa CultureInfo
. Stando così aggiungere questi due usings al tuo codice di controllo utente dietro: -
using System.Windows.Markup;
using System.Threading;
e quindi aggiungere questo al suo costruttore: -
Language = XmlLanguage.GetLanguage(Thread.CurrentThread.CurrentCulture.Name);
Ora un legame con StringFormat=#.##
utilizzerà il separatore decimale appropriata per la cultura corrente.