3

Je rencontre des problèmes de formatage de date très étranges dans mon application Silverlight. Ma culture locale est définie au Royaume-Uni, mais je vois constamment des dates américaines qui surgissent partout. Je peux facilement hardcode ce format Royaume-Uni en loactions spécifiques à l'aide:Formats de date Silverlight

<UserControl ... Language="en-GB"...> 

Mais comme je suis sûr que vous seriez tous d'accord cela est une chose terrible à faire.

J'ai essayé de placer le lanaguage à en-GB dans l'application principale et cela a un succès partiel. J'ai également essayé la suggestion de Justin Angels (posté ici: How to change date format in Silverlight DatePicker control?), encore une fois seulement un succès partiel.

Un exemple de la question peut être vu ici:

http://lh3.ggpht.com/%5FL9TmtwXFtew/Sw5aVZJfG1I/AAAAAAAAGkI/6jYnsB91HjI/image%5Fthumb%5B1%5D.png http://lh3.ggpht.com/%5FL9TmtwXFtew/Sw5aVZJfG1I/AAAAAAAAGkI/6jYnsB91HjI/image%5Fthumb%5B1%5D.png

Le DataGrid sur la page parent montre la mise en forme du Royaume-Uni, tandis que les informations contenues dans le ChildWindow montre le formatage US ... grrrr

Quelqu'un at-il une solution définitive pour résoudre ce problème dans l'ensemble d'une application?

Merci, Mark

Répondre

0

Pouvez-vous pas utiliser la propriété SelectedDateFormat du datepicker? Si vous voulez faire cela une fois, ne pouvez-vous pas créer votre propre commande utilisateur dérivée de l'original avec cette valeur prédéfinie, puis utiliser votre contrôle dérivé tout au long de votre application?

Bonté,

Dan

+0

je pourrais utiliser SelectedDateFormat à la date ramasseurs mais je pense que cela mettre la culture codée en dur à travers l'application. Je m'attendrais à ce que cela «fonctionne» directement à partir de la culture du client. En outre, cela ne concerne pas uniquement les sélecteurs de date. Parfois, ce sont des dates liées affichées dans les DataGrid ou dans les blocs de texte. –

0

Tourné dans l'obscurité, mais ne changeant la langue de préférence du navigateur faire un differnence? C'est à dire. dans IE Outils -> Options Internet -> Langues.

HTH

Mark

+0

Merci pour la suggestion, mais je cours déjà dans "en-gb" –

+0

Ack, désolé, vous avez dit que dans votre question initiale, je ne l'ai évidemment pas lu correctement. – Mark

0

Vous pouvez définir le format de date pour l'ensemble de l'application dans l'application de démarrage événement follows.This écraseront les paramètres régionaux sur la machine des utilisateurs

 Thread.CurrentThread.CurrentCulture = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone(); 
     Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern = dd/MM/yyyy"; 
Questions connexes