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);
InformationsquelleAutor WPFNewbie Wannabe | 2013-10-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das Ding ist Sie arbeiten, string, string,seit Sie bitten, für die Zeit und die Telefonnummer, die Sie alle zahlen, die dann versuchen diesen trick(wenn wir es so nennen können :)):
Zur Telefonnummer:
Können Sie auch legen Sie Ihre gewünschten Masken in einem Wörterbuch zum Beispiel, und tun Sie dies:
InformationsquelleAutor terrybozzio
Versuchen mit DateTime.TryParseExact, e.g:
Danach können Sie eine Zeichenfolge verwenden.Format vordefinierte Formate auf MSDN.
Nehme an, dass Sie wissen, welche Art von Daten Ihre Anwendung gerade Lesen, haben Sie mehrere Möglichkeiten. Entweder benutzen Sie eine Methode, wie terrybozzio oder erstellen Sie eine Konverter-Fabrik für die möglichen Typen und dann können Sie eine generische Methode.
InformationsquelleAutor Andras Sebo