我使用以下博文在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/>
通过这样做,我得到了我的设计时间支持。但现在,当我运行我的应用程序并更改我的语言时,它不会改变吗?
有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
您的类ResourceWrapper应该实现INotifyPropertyChanged事件。否则绑定更新将不会挂起。