2010-06-11 3 views
0

Mon application Silverlight RIA activée définit la culture de threads dans le constructeur App (c'est absolument correct car c'est une application intranet et ne sera jamais utilisé par quelqu'un qui n'est pas allemand):Silverlight (RIA Services) changement de culture spontané

public App() { 
    InitializeComponent(); 
    Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE"); 
} 

Il fait ce qu'il devrait, les DataForms affichent des valeurs datetime en notation allemande. MAIS: il passe spontanément à la notation en-US lors de la navigation entre les éléments de la source de données liée au DataForm. Pourquoi?

Répondre

0

Il semble que la culture de thread ne soit pas héritée par tous les contrôles. Juste pour le plaisir, j'ai affiché la langue du contrôle, et il était toujours défini sur en-US. Pour résoudre ce problème, j'ai codé en dur le langage de-DE dans le style de DataForm.

Le même problème était described by Hannes (in german). Étonnamment dans ce cas, c'était exactement l'inverse: le DataForm était allemand, mais la grille était l'anglais.

0

Comme Marc Wittke dit, la culture de fil n'est pas hérité par chaque contrôle (pourquoi diable ???)

De toute façon, vous ne avez pas besoin de coder les valeurs, ce mettre cette ligne dans votre constructeur de contrôle :

Language = XmlLanguage.GetLanguage (CultureInfo.CurrentCulture.Name);

Et vous contrôlez utiliser CurrentCulture.

Cheers,

André

Questions connexes