小编Joh*_*ohn的帖子

使用资源本地化Silverlight应用程序

我使用资源本地化Silverlight应用程序时遇到问题.我想让我的多语言机制成为跨平台,这就是为什么我将所有可本地化的资源放在Portable Class Library类型的项目中.在这个项目中,我创建了两个资源文件Localization.resx和Localization.en.resx,并在两个文件中将public和"access modifier"设置为public.然后我创建了名为"LocalizationProxy"的代理类,它是一个启用绑定的代理类.

public class LocalizationProxy : INotifyPropertyChanged
{
    public Localization LocalizationManager { get; private set; }

    public LocalizationProxy()
    {
        LocalizationManager = new Localization();
    }

    public void ResetResources()
    {
        OnPropertyChanged(() => LocalizationManager);
    }


    #region INotifyPropertyChanged region
    public event PropertyChangedEventHandler PropertyChanged;

    public void OnPropertyChanged<T>(Expression<Func<T>> selector)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(GetPropertyNameFromExpression(selector)));
        }
    }

    public static string GetPropertyNameFromExpression<T>(Expression<Func<T>> property)
    {
        var lambda = (LambdaExpression)property;
        MemberExpression memberExpression;

        if (lambda.Body is UnaryExpression)
        {
            var unaryExpression = (UnaryExpression)lambda.Body;
            memberExpression = (MemberExpression)unaryExpression.Operand; …
Run Code Online (Sandbox Code Playgroud)

localization silverlight-4.0 windows-phone-7 localizable.strings

6
推荐指数
1
解决办法
690
查看次数