【发布时间】:2010-07-14 10:19:32
【问题描述】:
我是 OOD 新手,所以我有一个关于使用类创建多语言 UI 的问题。
我想创建一个可用于我的应用程序中所有表单的类,以便我可以随时更改 UI 语言。基本思想是将语言资源保存在 xml 文件中并为所有控件创建数据绑定,以便在我加载新的语言资源文件时更改 Text 属性。
我最终为应用程序主窗体上的所有控件创建了绑定,并且当窗体加载绑定源的数据源类从语言存储类的字段中读取字符串时。一切都很好,直到我想同时更改所有其他形式的 UI 语言。静态类的数据绑定似乎不起作用,或者我太笨了无法使用它。
.NET 3.5、C#、VS2008 Express
【问题讨论】:
-
你使用什么平台,WPF 还是 WinForms?
-
让它在你的静态类中改变语言也会启动你的表单刷新。
-
正如我提到的,数据绑定不适用于静态类成员。当我尝试添加绑定时,它会导致异常: label1Binding = label1.DataBindings.Add("Text", interfaceBinding, "Label1"); DataMember "Label1" 是一个静态类的字段。
-
为什么要使用数据绑定进行本地化?只需创建一个
Localize方法并本地化字幕或使用winForms 的本地化属性:msdn.microsoft.com/en-us/library/y99d1cd3.aspx(和Form.Language等)。 -
任何带有完整源代码示例的最终解决方案?
标签: c# oop class interface multilingual