Wie kann ich den format-string-Werte mithilfe einer Maske in eine generische Art?

Hintergrund: Wir haben ein system erhält, dass die Daten von einem anderen backend-system. Wir kümmern uns um die Anzeige der Daten, und wir haben unsere eigene XML-templates zu Steuern, wie bestimmte Dinge angezeigt werden (d.h. wir haben unsere eigene Spalte Vorlagen zu diktieren, was die Spaltenüberschriften, etc.) Eine Sache, die wir unterstützen möchten ist die Möglichkeit zu geben, eine Maske für diese Spalte Vorlagen, die sich auf die Werte aus dem backend. Unten ist ein Szenario, das ich Probleme habe mit.

Problem: ich kann nicht scheinen, um eine einfache string-format arbeiten. Ich möchte formatieren einer ZEICHENFOLGE von vier Ziffern (z.B. "1444") in einer Zeit-format (z.B. "14:44"). Ich habe versucht:

String.Format("{0:00:00}", "1444")

Hinweis auf die Bedeutung der Eingabe einen STRING. Wenn ich liefern einen int-Wert, das format funktioniert. Der Grund, warum ich nicht verwenden, das ist, weil alle Daten, die wir erhalten aus dem backend ist im string-format, und wir würden gerne für das Allgemeine (also Gießen ist nicht wirklich eine option).

Durch ein generisches, ich meine, ich würde gerne geben Sie eine Maske in unserem eigenen XML-Vorlagen, so etwas wie:

<MyColumnTemplate Id="MyColumn" Mask="00:00" />

und zu nutzen, dass die Maske in einem string-format-Aufruf für string-Werte? Wenn die Maske nicht, wir konnten nur einfach wieder den ursprünglichen Wert (als String.Format () - Methode bereits standardmäßig tut).

Edit: Zu helfen, zu klären, hier ist eine vereinfachte version von dem, was ich möchte in der Lage sein zu tun in code:

string inputValue = "1444";
string maskValueFromXml = "00:00";

string mask = "{0:" + maskValueFromXml + "}";
string myDesiredEndResult = String.Format(mask, inputValue);
Ich denke, Sie müssen schreiben Sie Ihre eigenen FormatProvider.

InformationsquelleAutor WPFNewbie Wannabe | 2013-10-29

Schreibe einen Kommentar