У меня есть вопрос здесь, чтобы спросить. У меня есть перечисление, которое во время выполнения отображается в пользовательском интерфейсе. Он имеет три значения.Как преобразовать enum в локализованную структуру перечислений в WPF
enum ExpiryOptions
{
Never,
After,
On
}
Теперь пользователь userControl, когда он загружает свои показы Никогда, После, вкл.
<ComboBox x:Name="accessCombo" Margin="5" Height="25" Width="80"
ItemsSource="{Binding Source={StaticResource ResourceKey=expiryEnum},
Converter={StaticResource enumtoLocalizeConverter}}"/>
По-английски это хорошо, но проблема в том, что если программное обеспечение используется в качестве локализованных настроек, появляются одни и те же строки. И не любые локализованные строки.
В преобразователе у меня написал код, как этот
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
ExpiryOption[] myEnum = value; // This myEnum is having all the enum options.
// Now what shall I write here
//if I write a code like this
if(myEnum[0] == Properties.Resources.Never)
return Properties.Resources.Never;
else if(myEnum[1] == Properties.Resources.After)
return Properties.Resources.After;
else if(myEnum[2] == Properties.Resources.On)
return Properties.Resources.On;
}
то перечисление в пользовательском интерфейсе заполняется N E V E R (вертикально) В настройках английского языка. Очевидно, что первая строка соответствует и заполняется. Никогда еще нет двух других параметров. Любые предложения и помощь крайне необходимы.
Я набивать перечисление в словаре. Ключ - это перечисление, а значение - строка, которую я хочу отобразить. – Paparazzi