2013-03-30 47 views
0

嗨,大家好,首先抱歉的解釋不好。我的任務是翻譯我不是很久以前寫的一個應用程序,通常沒什麼特別的。如何將observablecollection成員連接到應用程序資源(resx)文件

但現在我在一個堅持點。我的應用程序的一個功能是保存歷史記錄。我爲此創建了一個基本類。

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

將資源(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); 
+0

我花了將近兩天的時間尋找那個,如果你在我旁邊,我會吻你 –

相關問題