У меня есть бизнес-приложение (созданное из шаблона), и я могу динамически менять язык, сделав ResourceWrapper INotifyPropertyChanged, а затем добавив код:
private void Language_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
Thread.CurrentThread.CurrentCulture =
new CultureInfo(((ComboBoxItem)((ComboBox)sender).SelectedItem).Tag.ToString());
Thread.CurrentThread.CurrentUICulture =
new CultureInfo(((ComboBoxItem)((ComboBox)sender).SelectedItem).Tag.ToString());
((ResourceWrapper)App.Current.Resources["ResourceWrapper"]).ApplicationStrings =
new ApplicationStrings();
}
это прекрасно работает с ресурсами, на которые есть ссылки / привязаны в файлах xaml (т.е. фрейм MainPage), но не не обновляет ссылки на все, что я объявил в коде, т. Е.
InfoLabel.Content = ApplicationStrings.SomeString
В данный момент я не использую ResourceWrapper. Мой вопрос здесь заключается в том, как я могу изменить свой код, чтобы он использовал его и обновлялся при изменении ResourceWrapper. Я попробовал:
InfoLabel.Content = ((ResourceWrapper)App.Current.Resources["ResourceWrapper"])
.ApplicationStrings.SomeString
но это не работает.
Есть идеи?