Как изменить перевод текста в выпадающем списке? - PullRequest
0 голосов
/ 28 марта 2019

Как изменить текстовый перевод ComboBox Items?У меня есть поле со списком, где я выбираю язык.Язык приложения изменяется, но он не может изменить текст элементов флажков на выбранный язык.

my xaml :

  <ComboBox HorizontalAlignment="Left" Margin="10,0,0,0" VerticalAlignment="Center" Width="120" ItemsSource="{Binding Path=Languages}" SelectedItem="{Binding Path=SLanguage, Mode=TwoWay}" DisplayMemberPath="LanguageName"  IsTabStop="False"/>

my VM :

   private ObservableCollection<LanguageSelector> _languages;

    public ObservableCollection<LanguageSelector> Languages
    {
        get { return _languages; }
        set
        {
            _languages = value;
        }
    }
    private LanguageSelector _slanguage;

    public LanguageSelector SLanguage
    {
        get { return _slanguage; }
        set
        {
            _slanguage = value;

            ChangeSelectedLang();
        }
    }


    private void ChangeSelectedLang()
    {

        if (SLanguage.Id == 1)
        {
            CultureInfo.CurrentCulture = new CultureInfo("pl-PL");
            SetLanguageDictionary();

        }
        else
        {
            CultureInfo.CurrentCulture = new CultureInfo("en-EN");
            SetLanguageDictionary();

        }
    }

    private void SetLanguageDictionary()
    {
        ResourceDictionary dict = new ResourceDictionary();
        switch (Thread.CurrentThread.CurrentCulture.ToString())
        {
            case "pl-PL":
                dict.Source = new Uri("..\\Resources\\LanguagePL.xaml", UriKind.Relative);
                break;
            case "en-EN":
                dict.Source = new Uri("..\\Resources\\LanguageEN.xaml", UriKind.Relative);
                break;
            default:
                dict.Source = new Uri("..\\Resources\\Language.xaml", UriKind.Relative);
                break;
        }
        {
            Application.Current.Resources.MergedDictionaries.Add(dict);
        }

    }

    public void FillCombo()
    {
        Languages = new ObservableCollection<LanguageSelector>()
            {new LanguageSelector(){Id=1, LanguageName=Application.Current.FindResource("pl-PL") as string }
             ,new LanguageSelector(){Id=2, LanguageName=Application.Current.FindResource("en-EN") as string }
            };
        this.SLanguage = Languages.FirstOrDefault();
    }

в моей директории у меня есть:

<system:String x:Key="pl-PL">Polski</system:String>
<system:String x:Key="en-EN">Angielski</system:String>

Я хочу переключать текст элементов комбинированного списка на выбранный язык, когда я изменяю его на EN ex.Польский на Польский

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...