Bonjour,
Mon appli est en MVVM.
J'utilise un converter afin de traduire une combobox permettant de choisir la langue de l'application. Ceci permet de n'utiliser dans mon view model uniquement les enum et de m'occuper du coté traduction uniquement dans le xaml.
Ma combo box est bindé sur une obesrvable collection
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 [ValueConversion(typeof(object), typeof(string))] public class KeyToTranslationConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { return LocalizationResourcesManager.GetTranslatedText(value); } ... }
Lorsque je valide ma nouvelle langue, j'appelle la méthode.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <ComboBox ItemsSource="{Binding LanguageEntries}" SelectedItem="{Binding LanguageEntry}"> <ComboBox.ItemTemplate> <DataTemplate> <Label Content="{Binding Converter={StaticResource Converter}}"/> </DataTemplate> </ComboBox.ItemTemplate> </ComboBox>
Le problème est que tout est traduit à l'exception de la valeur sélectionnée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 CollectionViewSource.GetDefaultView(this.LanguageEntries).Refresh(); this.NotifyPropertyChanged(() => this.LanguageEntry);
Pour info l'IHM accède bien a la value de LanguageEntry mais n'appelle pas le converter permettant la traduction.
Si quelque'un a une idée.
Arnaoud.
Partager