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?
Aurais-je besoin d'utiliser un convertisseur pour chaque DataColumn/TextBlock qui affiche une date? – Fermin
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
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