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.

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);
    }
...
}
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
 
<ComboBox ItemsSource="{Binding LanguageEntries}" 
              SelectedItem="{Binding LanguageEntry}">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <Label Content="{Binding Converter={StaticResource Converter}}"/>
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>
Lorsque je valide ma nouvelle langue, j'appelle la méthode.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
CollectionViewSource.GetDefaultView(this.LanguageEntries).Refresh();
this.NotifyPropertyChanged(() => this.LanguageEntry);
Le problème est que tout est traduit à l'exception de la valeur sélectionnée.

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.