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

本文关键字:视图 项目 网格 全球化 应用程序 Windows | 更新日期: 2023-09-27 18:16:56

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

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

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

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

获取应用程序首选语言的语言标签:

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);
    }
}