Обертка ресурсов для динамической локализации в Silverlight 4 - PullRequest
1 голос
/ 08 ноября 2011

Я достиг динамической локализации в Silverlight, используя следующую запись в блоге: http://www.wintellect.com/CS/blogs/jprosise/archive/2010/06/21/dynamic-localization-in-silverlight.aspx

Решение отлично работает. Я могу изменить параметры языка, и он отлично работает.

Но, как уже упоминалось в статье, я не могу получить поддержку времени разработки. Для этого я разработал класс Resource Wrapper:

 public sealed class ResourceWrapper  
    {
        //private static readonly ObservableResources<Resources> appResources = new ObservableResources<Resources>(resx);

        private  ObservableResources<Resources> appResources = new ObservableResources<Resources>(new Resources());
        public ObservableResources<Resources> ApplnResources
        {
            get { return appResources; }

        }
        public event PropertyChangedEventHandler PropertyChanged;
        public void UpdateBindings()
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs("ApplnResources"));
            }
        }

    }

В моем app.xaml я добавил класс ResourceWrapper В моем Home.xaml я добавил следующие строки кода:

<HyperlinkButton Content="{Binding Source={StaticResource ResourceWrapper},Path=ApplnResources.LocalizationResources.CommentsEntry/>

Сделав это, я получил поддержку по времени разработки. Но теперь, когда я запускаю свое приложение и меняю язык, оно не меняется?

Может кто-нибудь помочь мне с этим решением?

1 Ответ

0 голосов
/ 21 августа 2013

Ваш класс ResourceWrapper должен реализовывать событие INotifyPropertyChanged. В противном случае обязательное обновление не будет подключено.

...