绑定使用C#中的枚举使用本地化值下拉。
我对所有语言都有价值。所以我不需要从其他任何地方获取它。 我可以用不同的语言resx文件写出所有的值。但我不确定它是如何运作的。
我使用的是C#窗体。框架3.5
答案 0 :(得分:2)
我使用了以下代码,它对我来说很好用
using System.Globalization;
using System.ComponentModel;
using System.Threading;
.......
.......
.......
Thread.CurrentThread.CurrentUICulture = new CultureInfo(DDLLang.SelectedValue);
ComponentResourceManager resource = new ComponentResourceManager(typeof(Default));
resource.ApplyResources(LblName, "LblName");
LblName.ID = "LblName";
Response.Write(resource.GetString("strMsg",CultureInfo.CurrentUICulture)??resource.GetString("strMsg"));
在上面的代码中,LblName是一个Label,StrMsg是一个简单的字符串。
在资源文件中,我将这样写:
名称值
Lbl.Name labelname ................
StrMsg anycustom msg ............
答案 1 :(得分:1)
private static ResourceManager _resources = new ResourceManager("MyClass.myResources",
System.Reflection.Assembly.GetExecutingAssembly());
public static IEnumerable<string> GetLocalizedNames(this IEnumerable enumValues)
{
foreach(var e in enumValues)
{
string localizedDescription = _resources.GetString(String.Format("{0}.{1}", e.GetType(), e));
if(String.IsNullOrEmpty(localizedDescription))
{
yield return e.ToString();
}
else
{
yield return localizedDescription;
}
}
}