【发布时间】:2011-03-12 19:48:51
【问题描述】:
我们有一个不使用传统资源文件的动态语言系统;而是通过语言管理器库从数据库中获取资源。基于旧版 (VB6) 解决方案,它根据控件标签属性中的资源名称对控件进行语言。页面初始化后,我们触发一个方法,该方法采用 LayoutRoot 并递归其子项,应用从控件具有的标记中查找的字符串。这被证明是笨拙的,递归例程已经变成了一个怪物,以迎合不同控件的微妙之处,我想改为使用数据绑定来应用字符串。
我意识到我可以为每个控件声明要绑定的属性,但这将涉及大量代码,我希望有更好的方法。是否有某种方法可以绑定到方法,传递参数。我设想了一个类似这样的方法。
public string GetResource(string resourceName)
{
string resource = <fetch resource from language manager>;
if (String.IsNullOrEmpty(resource))
{
return resourceName;
}
else
{
return resource;
}
}
我们的应用程序中已经有一个用于此检索的静态方法,它具有以下签名。
public static Resource(string resourceName, string defaultValue)
能直接使用就太好了。
【问题讨论】:
-
您只是将“语言”用作动词吗? 颤抖
-
我做到了,我认为这是对语言的滥用。你会推荐什么动词?翻译似乎不适合我所描述的内容。
-
“初始化”、“翻译”、“将资源应用于”
标签: c# silverlight data-binding