Je constate un comportement incorrect des documents XAML lorsque la CurrentCulture est modifiée. Quand j'ai quelques éléments comme celui-ci dans une fenêtre:Liaisons XAML WPF et affichage CurrentCulture
<Window x:Class="WpfLocalizationLocBaml.Test"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:glob="clr-namespace:System.Globalization;assembly=mscorlib"
x:Name="wndTest"
Title="Test" Height="300" Width="300">
<StackPanel>
<TextBlock x:Name="lblCultureName"
Text="{Binding Source={x:Static glob:CultureInfo.CurrentCulture},
Path=DisplayName}" />
<TextBlock x:Name="lblLocaleDateValue"
Text="{Binding ElementName=wndTest, Path=TestDate}"/>
<TextBlock x:Name="lblLocaleNumberValue"
Text="{Binding ElementName=wndTest,Path=NumberValue,StringFormat=c}" />
</StackPanel>
</Window>
ainsi qu'un MessageBox.Show (NumberValue.ToString ("c")); quand le formulaire commence, je vois des résultats différents.
Si j'exécute le formulaire avec la langue par défaut tout va bien évidemment. Toutefois, si je change la culture dans le code ou au démarrage, les liaisons aux valeurs de date et de nombre affichent toujours un formatage en-US. La valeur MessageBox.Show() affichée de manière appropriée reflète la culture actuelle. Question: Est-ce que WPF ne respecte pas CurrentCulture dans les liaisons? Et si oui, qu'est-ce qui détermine exactement la culture utilisée pour les reliures? Il est clairement en-US dans mon cas, mais peu importe ce que je définis dans mon projet comme la langue par défaut, il se lie toujours en en-US.
... Toutes les idées appréciées
Juste ce dont j'avais besoin pour mon application Windows Phone 7 - avec une légère modification de: - this.Language = XmlLanguage.GetLanguage (CultureInfo.CurrentCulture.Name); –
Vous pouvez le faire dans App.cs pour toutes les liaisons comme expliqué ici: http://stackoverflow.com/questions/2764615/wpf-stringformat-0c-showing-as-dollars – Heiner
'IetfLanguageTag' est obsolète. '.Name' peut être utilisé à la place. – Mafii