如何将observablecollection成员连接到应用程序资源(resx)文件

时间:2013-03-30 09:57:12

标签: c# silverlight windows-phone-7 windows-phone-8

嘿,伙计们首先对不好的解释感到抱歉。我的任务是翻译我不久前写的应用程序,通常没什么特别的。

但现在我处在一个棘手的问题上。我的应用程序的一个功能是保存历史记录。我为此创建了一个基础课程。

 public class GHistoryClass
    {
       public GHistoryClass(string act, string icop, string categ, string desc,)
        {
            this.m_Action = act;
            this.m_IconPath = icop;
            this.m_Description = desc;
            this.m_Category = categ;

        }
        public string m_Action { get; set; }
        public string m_Description { get; set; }
        public string m_Category { get; set; }
        public string m_IconPath { get; set; }
    }

我在ObservableCollection中保存了IsolatedStorage这样的历史记录。 当语言改变时,我想翻译历史。

我无法理解,例如如何将m_Actionlocalized resourses挂钩。

任何想法都将受到最高的赞赏。

修改

我认为应该做的诀窍是将AppResources属性名称的名称保存为字符串 所以m_Action = "AppResources.firstaction"然后我的想法是将其投射为PropertyPath。 这是一个好主意,我如何将string转换为object名称?

1 个答案:

答案 0 :(得分:1)

将资源(resx)文件添加到项目时,最终会为每个资源生成一个生成的属性。

internal class MyResources
{
    // other properties etc

    internal static string SomeLabel 
    {
        get
        {
            return ResourceManager.GetString("SomeLabel", resourceCulture);
        }
    }
}

通常你会像这样使用这个资源:

string label = MyResources.SomeLabel;

但你不必这样做。相反,您可以直接访问ResourceManager:

string label = MyResources.ResourceManager.GetString(m_Action);