Я хочу перевести элементы моего поля со списком.Поэтому я использую персонализированный конвертер KeyToTranslationConverter, который преобразует значение Enum в переведенную строку.
[ValueConversion(typeof(object), typeof(string))]
public class KeyToTranslationConverter : IValueConverter
{
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
return LocalizationResourcesManager.GetTranslatedText(value);
}
}
Мое поле со списком привязано к наблюдаемой коллекции LanguagesEntries, а selectItem привязан к атрибуту LanguageEntry.
<ComboBox ItemsSource="{Binding LanguageEntries}"
SelectedItem="{Binding LanguageEntry}">
<ComboBox.ItemTemplate>
<DataTemplate>
<Label Content="{Binding Converter={StaticResource Converter}}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
Моя проблема: Когда пользователь меняет язык, метод вызывается:
CollectionViewSource.GetDefaultView(this.LanguageEntries).Refresh();
Все коллекции элементов переведены, кроме выбранного элемента, который дублируется:
Например,выбранный пункт «Английский» не переведен, но слово «английский» находится в списке со списком.
Может кто-нибудь мне помочь.
Арно.