2008-12-29 8 views
12

Wiem, że WPF 3.5 SP1 obsługuje StringFormat w wiązaniu, ale czy Silverlight może zrobić to samo? Pomyślałem, że to możliwe, ale niech mnie diabli, jeśli uda mi się to sprawić!Czy Silverlight obsługuje StringFormat w wiązaniu?

Oto fragment mojego XAML:

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

To kompiluje OK, ale pojawia się błąd wykonania, gdy robi do przeglądarki ...

Odpowiedz

11

Silverlight 3 i poniżej nie, ale ty może użyć konwertera wartości i określić Konwerter w powiązaniu. Będziesz musiał stworzyć swój własny konwerter wartości, wyprowadzając klasę z IValueConverter, tak jak pokazałem here.

Silverlight 4 i nowsze wersje mają tę samą właściwość wiązania StringFormat co WPF.

+7

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

37

Nie wiem, która wersja Silverlight go wprowadziła, ale teraz możesz. Używam 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

Oto informacji na Formatting Types i więcej za DateTime.

Oto pełna dokumentacja na Silverlight Binding.

+1

Odpowiednie odniesienie jest obsługiwane tylko w Silverlight 4 http://msdn.microsoft.com/en-us/library/ system.windows.data.bindingbase.stringformat% 28VS.95% 29.aspx – russau

+0

Nawiasem mówiąc, Tim Heuer wskazuje błąd i obejście z powiązaniem StringFormat, gdy jest używany z kulturami spoza Stanów Zjednoczonych: http://timheuer.com/blog/ archiwum/2010/08/11/stringformat-and-currentculture-in-silverlight.aspx –

1

Format napisany przez Simona jest w Silverlight 4. Istnieje nawet wsparcie Blend do ustawienia formatu.