Silverlight 4中动态本地化的资源包装器

时间:2011-11-07 21:21:22

标签: silverlight-4.0 dynamic localization

我使用以下博文在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 :(得分:0)

您的类ResourceWrapper应该实现INotifyPropertyChanged事件。否则绑定更新将不会挂起。