2010-07-01 7 views
5

Je travaille sur une application Silverlight pour le moment. J'ai quelques dataagrids/textblocks où j'utilise la liaison standard pour montrer les valeurs, dont certaines sont des dates. par exemple.Modifier la culture de l'application Silverlight

<sdk:DataGrid AutoGenerateColumns="False" IsReadOnly="True" ItemsSource="{Binding Path=MyCollection}"> 
    <sdk:DataGrid.Columns> 
    <sdk:DataGridTextColumn Binding="{Binding Path=Name, Mode=OneWay}" Header="Agent"/> 
    <sdk:DataGridTextColumn Binding="{Binding Path=UpdateTime, Mode=OneWay}" Header="Update Time"/> 
    </sdk:DataGrid.Columns> 
</sdk:DataGrid> 
<TextBlock Text="{Binding Path=LastUpdatedTime}"/> 

Cela lie bien, mais les dates sont toujours montré que le style américain (m/d/y) alors que je veux leur montrer le style du Royaume-Uni (d/m/y). J'ai essayé de placer la culture en utilisant les balises HTML sur la page d'accueil de l'application

<param name="uiculture" value="en-GB" /> 
<param name="culture" value="en-GB" /> 

et Application_Start de mon application Silverlight

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB"); 
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-GB"); 

mais aucun de ceux-ci font aucune différence. J'ai une classe personnalisée qui implémente l'interface IValueConverter, j'ai ajouté un point d'arrêt sur la méthode Convert et le paramètre CultureInfo qui est passé est en-US, comment puis-je changer la culture?

Répondre

-1

Dans le convertisseur utiliser le code ci-dessous

CultureInfo ci = new CultureInfo("en-GB"); 
return value.ToString(ci); 
+0

Aurais-je besoin d'utiliser un convertisseur pour chaque DataColumn/TextBlock qui affiche une date? – Fermin

+0

oui. Mais si vous voulez utiliser global, dans le constructeur MainPage ou l'utilisation de l'événement Loaded ci-dessous (pas besoin de convertisseur ici) CultureInfo fr = new CultureInfo ("en-GB"); Thread.CurrentThread.CurrentCulture = en; – Ragunathan

+0

Comme je l'ai dit dans mon post initial, j'ai déjà essayé de configurer CurrentCulture dans l'événement Application_Start et cela ne change pas la façon dont les dates sont affichées. – Fermin

Questions connexes