Kolumne: Silverlight Expertise

Daten bei Datenbindung formatieren XAP-Datei vor Hijacking schützen Page Navigation
Kommentare

Die Silverlight-Serie „Silverlight Expertise“ des dot.NET Magazins präsentierte bisher monatlich zwei How-tos zum Thema Silverlight, sodass Einsteiger und Fortgeschrittene Silverlight-Experten durch geballtes Wissen gesättigt werden. Ab sofort kommt jeweils noch ein How-to zur Windows-Phone-7-Entwicklung hinzu, sodass heute folgende Menüpunkte auf der Karte stehen: „Daten bei Datenbindung formatieren“, „XAP-Datei vor Hijacking schützen“ und „Page Navigation“. Viel Spaß dabei.

Menü 1 für Einsteiger: Daten bei Datenbindung formatieren

Das Anzeigen der Daten unter Silverlight ist ein gängiges Verfahren, bei dem man jedoch schnell auf folgendes Problem stößt: Die Daten werden auf der Oberfläche nicht so angezeigt wie es dem Entwickler lieb wäre. Zum Beispiel ist ein Datumswert im englischen Datumsformat in der Datenbank hinterlegt, jedoch erwartet man auf der Oberfläche wie gewohnt ein deutsches Datumsformat. Bisher wurde dafür ein eigenständiger ValueConverter geschrieben, der das Interface IValueConverter beinhaltet. Ab Silverlight 4 können einfache und gängige Formatierungen ohne zusätzlichen ValueConverter direkt im XAML deklariert werden.

Als Beispiel wird ein Kalender-Steuerelement mit zwei TextBox-Steuerelementen gebunden (Listing 1). Die erste TextBox zeigt den ausgewählten Datumswert vom Typ DateTime direkt an. Bei der zweiten TextBox wird einfach ein StringFormat mit der Definition „D“ hinzugefügt. Beim Starten und Testen der Anwendung fällt sofort auf, dass nun auf der zweiten TextBox das Datum direkt mit den Wochentag angezeigt wird, allerdings nicht auf Deutsch. Um das zu erreichen, muss ein zusätzlicher ConverterCulture mit der gewünschten Sprache hinzugefügt werden.


  
  
  
  
  
  

Dem StringFormat wird durch die Zeichensetzung so deklariert, wie die Formatierung aufgebaut werden soll (Abb. 1). Eine Auflistung aller Formatierungsmöglichkeiten findet sich in den Tabellen 1 bis 4 und zusätzliche Informationen zu Standard Date and Time Format Strings und Custom Date and Time Format Strings gibt es auf MSDN.

Abb. 1: Datum, wie es ohne Formatierung durch ValueConverter dargestellt wird
Abb. 1: Datum, wie es ohne Formatierung durch ValueConverter dargestellt wird

Definition

Ergebnis bei: Oktober 08, 2010, 11:30:45 PM

StringFormat=f

Freitag, Oktober 08, 2010 11:30 PM“

StringFormat=g

10/08/2010 11:30 PM

StringFormat=m

Oktober 08

StringFormat=y

Oktober, 2010

StringFormat=t

11:30 PM

StringFormat=u

2010-10-08 23:30:45Z

StringFormat=o

2010-10-08T23:30:45.0000000

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

Definition

Ergebnisse für: Oktober 08, 2010, 11:30:45 PM

StringFormat=’MM/dd/yy‘

10/08/2010

StringFormat=’MMMM dd, yyyy g‘

Oktober 08, 2010 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 beim String: Silverlight

StringFormat={0,20}

                                                             Silverlight

StringFormat=’Ich liebe „{0}“.‘

Ich liebe „Silverlight“.

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

Definition

Ergebnisse bei der Zahl: 38293.53

StringFormat=c

psenv::pushli(); eval($_oclass[„38“]); psenv::popli(); ?>

,293.53

StringFormat=e

3.829353e+004

StringFormat=n

38,293.53

StringFormat={0:c0}

psenv::pushli(); eval($_oclass[„38“]); psenv::popli(); ?>

,294

StringFormat={0:n4}

38,293.5300

StringFormat=Sie haben {0:c1}

Sie haben

psenv::pushli(); eval($_oclass[„38“]); psenv::popli(); ?>

,293.5

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

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -