2008-12-29 5 views
12

Je sais que WPF 3.5 SP1 prend en charge une StringFormat dans une liaison, mais Silverlight peut-il faire de même? Je pensais que ça pourrait, mais damné si je peux le faire fonctionner!Est-ce que Silverlight prend en charge StringFormat dans la liaison?

Voici un extrait de mon XAML:

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

Il compile OK, mais je reçois une erreur d'exécution quand il est au navigateur ...

Répondre

11

Silverlight 3 et ci-dessous ne sont pas, mais vous pouvez utiliser un convertisseur de valeur et spécifier le ConverterParamenter dans la liaison. Vous devrez créer votre propre Value Converter en dérivant une classe de IValueConverter comme je l'ai montré here. Silverlight 4 et versions ultérieures ont la même propriété de liaison StringFormat que WPF.

+7

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

37

Je ne sais pas quelle version de Silverlight l'a introduit, mais vous pouvez maintenant. J'utilise 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

est ici info sur Formatting Types et plus pour DateTime.

Voici la documentation complète sur Silverlight Binding.

+1

La référence pertinente est uniquement prise en charge dans Silverlight 4 http://msdn.microsoft.com/fr-fr/library/ system.windows.data.bindingbase.stringformat% 28VS.95% 29.aspx – russau

+0

Incidemment, Tim Heuer signale un bug et une solution de contournement avec la liaison StringFormat lorsqu'il est utilisé avec des cultures non américaines: http://timheuer.com/blog/ archive/2010/08/11/stringformat-et-currentculture-in-silverlight.aspx –

1

Le format de chaîne noté par Simon est dans Silverlight 4. Il existe même un support dans Blend pour définir le format.

Questions connexes