我試圖將字符串資源綁定到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