2016-11-18 6 views
0

Ist es möglich, ein C# TimeSpan mit TotalHours mit string.Format zu formatieren?
TimeSpan Formatierung mit Total

Ich habe durch die documentation geschaut, aber ich kann nichts finden.

Ich weiß, ich kann es über einen Konverter (ich benutze Xamarin XAML), aber wie ich hoffe, meine App wird weltweit gehen, ich mag es nicht, dass es der Weg ist zu gehen.

Beispiel

In Ansichtsmodell so etwas wie diese

public TimeSpan CurrentOutput {get; set;} 

public ViewModel() 
{ 
    CurrentOutput = new TimeSpan(1,2,3,4,5); 
} 

gesetzt und im XAML Code so etwas wie diese

<Label Text="{Binding CurrentOutput, StringFormat='{}{0:<total_hours>:mm}'}" /> 
+0

Natürlich können Sie formatieren können 'TotalHours', es ist nur ein ganz normaler' double'. Alles hängt davon ab, welches Format Sie erwarten. 'TotalHours' hat keine zeitspezifischen Formatierer, da es sich nicht um einen zeitbasierten Typ handelt. Es gibt eine umfangreiche Liste von Formaten (kann in ToString und string.Format verwendet werden) bei [MSDN] (https://msdn.microsoft.com/en-us/library/kfsatb94 (v = vs.110) .aspx) . Es kann helfen, zu wissen, was Sie tun möchten, wenn Sie also ein [mcve] hinzufügen könnten, erhalten Sie vielleicht sogar eine Antwort :) –

+1

Welche Ausgabe haben Sie erwartet? – Bharat

+1

Fragen Sie, wie Sie die Gesamtstunden in einer Formatzeichenfolge angeben, ohne auf die 'TotalHours'-Eigenschaft zuzugreifen? BTW, ob Sie einen Konverter oder Format im Code verwenden, beeinflußt Globalisierung nicht –

Antwort

0

nicht sicher, warum Sie beharren nicht TotalHours Zugriff aber falls du deine Meinung änderst ...

<Label Text = "{Binding CurrentOutput.TotalHours, StringFormat='{0:0}'}" /> 

oder nur

<Label Text = "{Binding CurrentOutput.TotalHours}" /> 
+0

es brauche verwendet nicht "TotalHours", sondern nur Stunden, also wenn ich mehr als 23 Stunden habe, wird dies nicht angezeigt –