我使用以下博客文章在Silverlight中实现了动态定位:http://www.wintellect.com/CS/blogs/jprosise/archive/2010/06/21/dynamic-localization-in-silverlight.aspx
这个解决方案非常有效。我可以改变我的语言选项,它工作得很好。
但是正如文章中提到的,我无法获得设计时支持。我为此设计了一个资源包装器类:
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类在我家。我添加了以下代码行:
<HyperlinkButton Content="{Binding Source={StaticResource ResourceWrapper},Path=ApplnResources.LocalizationResources.CommentsEntry/>
通过这样做,我得到了我的设计时间支持。但现在,当我运行我的应用程序和改变我的语言它不改变吗?
有人能帮我解决这个问题吗?你的类ResourceWrapper应该实现INotifyPropertyChanged事件。