我试图将字符串资源绑定到UWP应用程序中的组合框。将组合框项绑定到字符串资源数组
我应该在我的应用程序资源中保留一个语言列表。
名单有一个键(例如“EN”)和人类可读的字符串(如“英语”)
现在我想将这些值绑定到一个组合框,让用户选择的语言。
我无法找到一个方法来做到这一点
我试图将字符串资源绑定到UWP应用程序中的组合框。将组合框项绑定到字符串资源数组
我应该在我的应用程序资源中保留一个语言列表。
名单有一个键(例如“EN”)和人类可读的字符串(如“英语”)
现在我想将这些值绑定到一个组合框,让用户选择的语言。
我无法找到一个方法来做到这一点
你确实能不能直接存储在字符串资源的数组。你当然可以存储一个逗号分隔的字符串,并将其与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();
谢谢你的代码。我很难解释它。我需要一些东西来包装你所有的“ TableCreek
向我们展示你试过吗? –
不幸的是我不能显示任何东西,因为我甚至不能在字符串资源中创建字符串数组...请告诉我我错了 – TableCreek
我认为这将是一个简单的问题来解决,但不幸的是它不可能绑定资源 - 数组(这似乎不存在)到一个组合框。 – TableCreek