2015-12-21 66 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