WPF, Silverlight, Windows Phone 8 und Windows-Store-App

XAML: Daten bei Datenbindung formatieren
Kommentare

In der Kolumne „XAML Expertise“ präsentiert Gregor Biswanger Top-How-tos zum Thema XAML. Einsteiger und Fortgeschrittene XAML-Experten sollen hier durch geballtes Wissen gesättigt werden. Heute gibt es folgende Expertise: „XAML: Daten bei Datenbindung formatieren“. Viel Spaß mit XAML Expertise.

Das Anzeigen der Daten unter XAML ist ein gängiges Verfahren. Jedoch stößt man schnell auf das Problem, dass die Daten auf der Oberfläche nicht so angezeigt werden, wie es dem Entwickler lieb wäre. Beispielsweise ist ein Datumswert im englischen Format in der Datenbank hinterlegt, jedoch erwartet man auf der Oberfläche wie gewohnt ein deutsches Datumsformat. Wie Sie Fälle wie diesen lösen können, lesen Sie hier.

Daten vereinfacht formatieren

Bisher wurde für solche Fälle ein eigenständiger ValueConverter geschrieben, der das Interface IValueConverter beinhaltet. Allerdings können einfache und gängige Formatierungen auch ohne zusätzlichen ValueConverter direkt in XAML deklariert werden. Als Beispiel wird ein TextBox-Steuerelement mit einem Kalender-Steuerelement gebunden:

 
  
  
 

Die TextBox zeigt den ausgewählten Datumswert vom Typen DateTime direkt an. Dazu wird einfach ein StringFormat mit der Definition D hinzugefügt. Beim Starten und Testen der Anwendung fällt sofort auf, dass das Datum in der TextBox direkt mitsamt dem Wochentag angezeigt wird, allerdings nicht auf Deutsch. Dafür muss ein zusätzlicher ConverterCulture mit der gewünschten Sprache hinzugefügt werden.

StringFormat bekommt durch Zeichensätze deklariert, wie die Formatierung aufgebaut werden soll. Eine Auflistung aller Formatierungsmöglichkeiten finden Sie in den Tabelle 1, 2 und 3, zusätzliche Informationen in der MSDN unter [1] und [2].

Abb. 1: Ohne ValueConverter wird das Datum formatiert dargestellt

Definition Ergebnis bei: Oktober 08, 2014, 11:30:45 PM
StringFormat=f Freitag, Oktober 08, 2014 11:30 PM
StringFormat=g 10/08/2014 11:30 PM
StringFormat=m Oktober 08
StringFormat=y Oktober, 2014
StringFormat=t 11:30 PM
StringFormat=u 2014-10-08 23:30:45Z
StringFormat=o 2014-10-08T23:30:45.0000000

Tabelle 1: Feste Formatierungsmöglichkeiten mit StringFormat für Datumswerte

Definition Ergebnisse für: Oktober 08, 2014, 11:30:45 PM
StringFormat=’MM/dd/yy‘ 10/08/2014
StringFormat=’MMMM dd, yyyy g‘ Oktober 08, 2014 A.D.
StringFormat=’hh:mm:ss.fff tt‘ 23:30:45.000 PM

Tabelle 2: Benutzerdefinierte Formatierungsmöglichkeiten mit StringFormat für Datumswerte

Definition Ergebnisse bei der Zahl: 38293.53
StringFormat=c $38,293.53
StringFormat=e 3.829353e+004
StringFormat=n 38,293.53
StringFormat={0:c0} $38,294
StringFormat={0:n4} 38,293.5300
StringFormat=Sie haben {0:c1} Sie haben $38,293.5

Tabelle 3: Formatierungsmöglichkeiten mit StringFormat für Zahlenwerte

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -