Hallo,
ich habe endlich geschafft eine Textbox korrekt an eine Zahl zu binden.
Bei einem OneWayToSource-Binding funktioniert also alles einwandfrei. Bei einem TwoWay-Binding gibt es folgendes Problem:
Zum Beispiel "123," wird in "123" konvertiert und wird dann folgendermaßen auch übernommen. Ist es möglich dies zu ändern?
Die TextBox zeigt ja quasi nur die Daten an.
Das heißt nur weil die Textbox die Zahl "123," so anzeigt, wird diese so nicht an den gebunden Typ (der wahrscheinlich float/decimal/... ist) gespeichert.
Möchtest du ein Komma haben, könntest du z.B. StringFormat im Binding angeben.
Anders verhält es sich, wenn du den Typ String binden würdest.
Am besten du nimmt ein Binding das die Kultur brücksichtig
class CultureBinding : Binding
{
public CultureBinding() : base ()
{
ConverterCulture = System.Globalization.CultureInfo.CurrentCulture;
}
public CultureBinding(string str) : base(str)
{
ConverterCulture = System.Globalization.CultureInfo.CurrentCulture;
}
}
class PreisBinding : Binding
{
public PreisBinding()
: base()
{
ConverterCulture = System.Globalization.CultureInfo.CurrentCulture;
StringFormat = EinstellungCache.PreisMask;
}
public PreisBinding(string str)
: base(str)
{
ConverterCulture = System.Globalization.CultureInfo.CurrentCulture;
StringFormat = EinstellungCache.PreisMask;
}
}
Bitte verwende die richtigen Code-Tags [Hinweis] Wie poste ich richtig?