2015-12-21 75 views
1

我试图将字符串资源绑定到UWP应用程序中的组合框。将组合框项绑定到字符串资源数组

我应该在我的应用程序资源中保留一个语言列表。

名单有一个键(例如“EN”)和人类可读的字符串(如“英语”)

现在我想将这些值绑定到一个组合框,让用户选择的语言。

我无法找到一个方法来做到这一点

+0

向我们展示你试过吗? –

+0

不幸的是我不能显示任何东西,因为我甚至不能在字符串资源中创建字符串数组...请告诉我我错了 – TableCreek

+0

我认为这将是一个简单的问题来解决,但不幸的是它不可能绑定资源 - 数组(这似乎不存在)到一个组合框。 – TableCreek

回答

1

你确实能不能直接存储在字符串资源的数组。你当然可以存储一个逗号分隔的字符串,并将其与string.Split分开,但这很难看得很快。但是,您可以将数组项存储为单个字符串资源。

我这样做的方式通常如下。

首先,创建一个遵循命名约定的字符串资源,例如Language.<isocode>

<data name="Language.EN" xml:space="preserve"> 
    <value>English</value> 
</data> 
<data name="Language.FR" xml:space="preserve"> 
    <value>French</value> 
</data> 

然后你可以从语言标识这些资源如下:

string name = resourceLoader.GetString("Language/" + identifier.ToUpperInvariant()); 

这应该让你建立你的数组。比方说,你有

private static readonly string[] supportedLanguages = { "EN", "FR" }; 

public class Language 
{ 
    string Id { get; set; } 
    string Name { get; set; } 
} 

然后你就可以建立数组绑定到如下:

var languages = (from language in supportedLanguages 
       select new Language 
       { 
        Id = language, 
        Name = resourceLoader.GetString("Language/" + language) 
       }).ToArray(); 
+0

谢谢你的代码。我很难解释它。我需要一些东西来包装你所有的“ TableCreek