Frage

Ich habe eine doppelte, zum Beispiel bekam

double d = 4.323d;

Und ich will es auf einer Silverlight 4-Anwendung in einem Textblock angezeigt werden, aber die Anzeige sollte sein:

4.32

Und ich kann nicht den String auf der Bindung überhaupt ändern.

Die Ausnahme ist, dass, wenn die Zahl ist dies:

double d2 = 4d;

Dann sollte es anzuzeigen

4, nicht 4.00.

Und die Schlimmste Ausnahme ist, dass es die aktuelle UI-Kultur in Betracht ziehen sollte, was bedeutet, dass, wenn die App in den USA eingesetzt wird eine . als Dezimalzahl seperator verwendet werden soll, und in Europa sollte es eine , verwenden (gut nicht in Großbritannien, aber Sie erhalten den Punkt ...)

ich die Default zu #.## setzen konnte, wenn ich in der Lage war, den String zu ändern, aber ich mag es durch Culture tun

War es hilfreich?

Lösung

Ich werde für den Moment davon ausgehen, dass Sie glauben, dass Sie nicht in String Bindung verwenden können, weil es nicht CultureInfo nicht verwendet. Wenn das der Fall fügen Sie diese beiden usings Ihren Benutzersteuercode hinter: -

using System.Windows.Markup;
using System.Threading;

und fügen Sie dann diese an den Konstruktor: -

Language = XmlLanguage.GetLanguage(Thread.CurrentThread.CurrentCulture.Name);

Jetzt mit StringFormat=#.## einer Bindung wird die entsprechenden Dezimaltrennzeichen für die aktuelle Kultur verwendet werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top