目前,如果你想本地化在Windows手机应用程序中说应用程序标题,你会这样做:
<TextBlock Text="{Binding LocalizedResources.ApplicationTitle,
Source={StaticResource LocalizedStrings}}" />
这太长了,每次绑定都会重复某些部分。例如,即使您将LocalizedResources
属性重命名为R
而LocalizedStrings
类重命名为LS
,仍然存在一些重复。
所以我尝试创建一个继承自Binding
类的类,并实现如下:
public class LocalizedBinding : Binding {
public LocalizedBinding(string path) : base(path) {
Source = Application.Current.Resources["LocalizedStrings"];
}
}
希望如下使用它:
<TextBlock Text="{b:LocalizedBinding LocalizedResources.ApplicationTitle}" />
然而,应用程序在启动时立即崩溃,即使在调试器中也看不到任何错误。关于这可能有用的任何提示?
由于
修改
向LocalizedBinding
添加无参数构造函数并将Path=
附加到绑定修复它。
答案 0 :(得分:1)
通过向LocalizedBinding
类
public class LocalizedBinding : Binding {
public LocalizedBinding() {
Source = Application.Current.Resources["LocalizedStrings"];
}
public LocalizedBinding(string path) : base(path) {
Source = Application.Current.Resources["LocalizedStrings"];
}
}
答案 1 :(得分:0)
您可以尝试将Localization类放入App.xaml,然后在Application_Launching上检查用户设置的语言。无论您在哪里显示文本,都可以参考App.xaml类。