2008-12-29 8 views
12

Ich weiß, dass WPF 3.5 SP1 eine StringFormat in einer Bindung unterstützt, aber kann Silverlight das gleiche tun? Ich dachte es könnte, aber verdammt, wenn ich es schaffen kann!Unterstützt Silverlight StringFormat beim Binden?

Hier ist ein Ausschnitt aus meiner XAML:

<TextBlock Text="{Binding StartTime, StringFormat=t}" /> 

Es kompiliert OK, aber ich erhalte eine Fehlerlaufzeit, wenn sie an den Browser bekommt ...

Antwort

11

Silverlight 3 und unten nicht, aber Sie kann einen Wertkonverter verwenden und das ConverterParameter in der Bindung angeben. Sie müssen Ihren eigenen Wertkonverter erstellen, indem Sie eine Klasse von IValueConverter ableiten, wie ich here gezeigt habe.

Silverlight 4 und höher haben dieselbe StringFormat-Bindungseigenschaft wie WPF.

+7

SL4 tut. http://msdn.microsoft.com/en-us/library/cc278072(VS.95).aspx –

37

Ich weiß nicht, welche Version von Silverlight es eingeführt hat, aber Sie können jetzt. Ich benutze Silverlight 4 Beta.

<data:DataGridTextColumn Header="Date" 
    Binding="{Binding CreateDt, StringFormat=\{0:d\}}" /> 

http://blog.davemdavis.net/2009/12/silverlight-4-data-binding-string.html

Hier Informationen über Formatting Types und mehr für DateTime.

Hier finden Sie die vollständige Dokumentation zu Silverlight Binding.

+1

Die relevante Referenz sagt nur unterstützt in Silverlight 4 http://msdn.microsoft.com/en-us/library/ system.windows.data.bindingbase.stringformat% 28VS.95% 29.aspx – russau

+0

Übrigens, Tim Heuer weist auf einen Fehler und eine Problemumgehung mit der StringFormat-Bindung hin, wenn er mit Nicht-US-Kulturen verwendet wird: http://timheuer.com/blog/ archive/2010/08/11/stringformat-und-currentculture-in-silverlight.aspx –

1

Das String-Format, das von Simon notiert wird, befindet sich in Silverlight 4. Es gibt sogar Unterstützung in Blend zum Festlegen des Formats.