Ich möchte das Format "Kurzes Datum mit dem Namen" in WPF verwenden.
Ich habe so etwas versucht wie:
<TextBlock Text="{Binding Date, StringFormat='Short Date'}" />
Wie macht man das?
Versuche dies:
<TextBlock Text="{Binding PropertyPath, StringFormat=d}" />
Dies ist kulturempfindlich und erfordert .NET 3.5 SP1 oder höher.
HINWEIS: Hierbei wird zwischen Groß- und Kleinschreibung unterschieden. "d" ist der kurze Datumsformatbezeichner, während "D" der lange Datumsformatbezeichner ist .
Auf der MSDN-Seite unter Standardzeichenfolgen für Datums- und Zeitformat finden Sie eine vollständige Liste des Zeichenfolgenformats sowie eine ausführlichere Erläuterung aller Optionen in diesem MSDN-Blogbeitrag
Es gibt jedoch ein Problem: Es gibt das Datum immer im US-Format aus, es sei denn, Sie stellen die Kultur selbst auf den richtigen Wert ein.
Wenn Sie diese Eigenschaft nicht festlegen, verwendet die Bindungs-Engine die Language- Eigenschaft des Bindungszielobjekts. In XAML ist dies standardmäßig "en-US" oder erbt den Wert vom Stammelement (oder einem beliebigen Element) der Seite, sofern eines explizit festgelegt wurde.
Eine Möglichkeit, dies zu tun, ist der Code dahinter (vorausgesetzt, Sie haben die Kultur des Threads auf den richtigen Wert eingestellt):
this.Language = XmlLanguage.GetLanguage(Thread.CurrentThread.CurrentCulture.Name);
Der andere Weg besteht darin, die Konverterkultur in die Bindung zu setzen:
<TextBlock Text="{Binding PropertyPath, StringFormat=d, ConverterCulture=en-GB}" />
Auf diese Weise können Sie die Ausgabe jedoch nicht lokalisieren.
Oder verwenden Sie dies für ein englisches Format (oder mischen Sie es für ein benutzerdefiniertes Format):
quelle
Verwenden Sie die
StringFormat
Eigenschaft (oderContentStringFormat
onContentControl
und seine Derivate, zLabel
. B. ).Beachten Sie, dass
{}
vor der Standardnotation fürString.Format
Positionsargumente die Klammern in der Sprache der Markup-Erweiterung maskiert werden können.quelle
{}
ermöglicht es Ihnen , zu verwenden ,StringFormat='{}Created Date:{0:d}'
die sonst zu unerwarteten Ergebnissen führen würde.Einige DateTime StringFormat-Beispiele, die ich nützlich fand. Aus C # -Beispielen herausgehoben
quelle
Benutz einfach:
quelle
Wenn Sie eine Zeichenfolge mit dem Wert hinzufügen möchten, verwenden Sie Folgendes:
quelle
Beachten Sie die einfachen Anführungszeichen für das Zeichenfolgenformat. Das funktioniert nicht:
während dies tut:
quelle