Windows应用商店应用:全球化网格视图项模板

时间:2013-06-05 12:56:01

标签: c# windows-8 windows-store-apps winrt-xaml

我有一个支持两种语言的应用程序:英语和阿拉伯语。

在一个页面中,我有一个GridView,我有两个GridView的项目模板;一个用于英语,一个用于阿拉伯语。

如何有效地根据应用程序的当前语言处理项目模板的切换?

1 个答案:

答案 0 :(得分:1)

获取应用首选语言的语言标记:

Windows.Globalization.ApplicationLanguages.primaryLanguageOverride

并将其与DataTemplateSelector一起使用,以选择正确的ItemTemplate

这样的事情:

public class LanguageTemplateSelector : DataTemplateSelector
{ 
    public DataTemplate ItemTemplate1 { get; set; }
    public DataTemplate ItemTemplate2 { get; set; }

    protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
    {
        string language = Windows.Globalization.ApplicationLanguages.primaryLanguageOverride;

        if(language.Equals("LanguageTAG"))
        {
             return ItemTemplate1;
        }
        else if(language.Equals("AnotherLanguageTAG"))
        {
            return ItemTemplate2;
        }

        return base.SelectTemplateCore(item, container);
    }
}