来自.resw
的字符串资源,用于Windows 8中的数据绑定。
在Windows Phone中,我使用以下内容:
AppStrings.resx
并将所有字符串放在其上。StringResources
,其字段返回AppStrings.resx
。StringResources
添加到ApplicationResource
。StringResources.cs
public class StringResources
{
private static AppStrings _resources;
public static AppStrings LocalizedResources
{
get { return _resources ?? (_resources = new AppStrings()); }
}
}
在App.xaml中
<Application.Resources>
<ResourceDictionary>
<res:StringResources x:Key="Strings"/>
</ResourceDictionary>
</Application.Resources>
使用xaml中的资源,如。
Text="{Binding Path=LocalizedResources.StringName, Source={StaticResource Strings}}"
一切都很好,但我不能在Windows 8中这样做
我在Windows 8上搜索与字符串资源类似的使用方式DataBinding
。
注意:
我检查了MSDN Sample,但找不到我需要的内容。
我也检查ResW File Code Generator,这是可行的方法,但是如此牵强。
答案 0 :(得分:1)
您可以使用与WP相同的方法。 Visual Studio扩展PublicResXFileCodeGenerator用于生成一个强类型类,其静态属性对应于WinPhone应用程序中resx文件中的所有键。但由于某些原因,默认情况下W8没有这样的工具。
Resw文件代码生成器Visual Studio extesion正在做同样的事情。
http://visualstudiogallery.msdn.microsoft.com/3ab88efd-1afb-4ff5-9faf-8825a282596a
安装它,然后您只需要将“自定义工具”字段设置为ReswFileCodeGenerator(在默认AppStrings.resw文件的属性中),并设置自定义工具命名空间以为AppStrings类提供名称空间。 它将自动生成AppStrings类,然后您可以像在WP中一样使用它。
注意:每次更改AppString.resw文件时,此扩展都会重新生成AppStrings calss,VS 2013会将构造函数'new ResourceLoader(“AppStrings”)标记为已弃用。你需要使用CoreWindow独立方法ResourceLoader.GetForViewIndependentUse(“AppString”)代替(GetForCurrentView(“AppString”)不起作用)。