En fait, vous pouvez définir la valeur par défaut thread de la culture et de la culture de l'INTERFACE utilisateur, mais seulement avec le Framework 4.5+
J'ai mis dans ce constructeur statique
static MainWindow()
{
CultureInfo culture = CultureInfo
.CreateSpecificCulture(CultureInfo.CurrentCulture.Name);
var dtf = culture.DateTimeFormat;
dtf.ShortTimePattern = (string)Microsoft.Win32.Registry.GetValue(
"HKEY_CURRENT_USER\\Control Panel\\International", "sShortTime", "hh:mm tt");
CultureInfo.DefaultThreadCurrentUICulture = culture;
}
et mettre un point d'arrêt dans le Convertir méthode de ValueConverter pour voir ce qui est arrivé à l'autre extrémité. CultureInfo.CurrentUICulture a cessé de l'être en NOUS et qu'il est devenu au lieu fr-AU complet avec mon petit hack pour faire respecter les paramètres régionaux pour ShortTimePattern.
Ca y est, tout est bien dans le monde! Ou pas. La culture paramètre passé à la Convertir méthode est encore en-US. Euh, WTF?! Mais c'est un début. Au moins de cette façon
- vous pouvez corriger la culture de l'INTERFACE utilisateur une fois lors de votre app charges
- il est toujours accessible à partir de
CultureInfo.CurrentUICulture
-
string.Format("{0}", DateTime.Now)
de l'utilisation de vos personnalisée paramètres régionaux
Si vous ne pouvez pas utiliser la version 4.5 du cadre puis abandonner sur le réglage de CurrentUICulture comme une propriété statique de CultureInfo et de le définir comme une propriété statique de l'un de vos propres classes. Ce ne sera pas corrigé le comportement par défaut de la chaîne.Format ou faire StringFormat fonctionner correctement dans les liaisons ensuite à pied de votre application logique de l'arbre de recréer toutes les liaisons dans votre application et définir leur convertisseur de culture.