来自.resw的字符串资源,用于Windows 8中的数据绑定

时间:2013-05-02 08:39:46

标签: xaml data-binding windows-runtime

来自.resw的字符串资源,用于Windows 8中的数据绑定。

在Windows Phone中,我使用以下内容:

  1. 创建AppStrings.resx并将所有字符串放在其上。
  2. 创建类StringResources,其字段返回AppStrings.resx
  3. 的实例
  4. StringResources添加到ApplicationResource
  5. 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,这是可行的方法,但是如此牵强。

1 个答案:

答案 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”)不起作用)。