とにかく、アプリケーションの起動時にファイルを読み取る必要があります。1つの解決策は、次のような言語を含むxmlファイルを作成することです。
<?xml version="1.0" encoding="utf-8" ?>
<Languages>
<Language Name="English" Code="en"/>
<Language Name="German" Code="de"/>
</Languages>
また、次のように言語の名前とコードを保持する小さなクラスを作成することもできます。
class Language
{
public string Name { get; set; }
public string Code { get; set; }
}
そして、すべての言語を読むための読み方:
private static List<Language> ReadLanguageFile()
{
List<Language> languages = new List<Language>();
string path = @"LanguagesFile.xml";
XDocument xdoc = XDocument.Load(path);
var lans = xdoc.Root.Elements("Language");
Language lan;
foreach (var item in lans)
{
lan = new Language();
lan.Name = item.Attribute("Name").Value;
lan.Code = item.Attribute("Code").Value;
languages.Add(lan);
}
return languages;
}
次に、コンボボックスのデータソースを次のように言語リストにバインドできます。
cmb.DataSource = ReadLanguageFile();
cmb.DisplayMember="Name";
cmb.ValueMember="Code";
ここで、言語用のファイルを作成したくない場合は、次のようにすべての言語を保持するクラスを作成できます。
public sealed class Languages
{
public static List<Language> GetLanguages()
{
return new List<Language>
{
new Language{Code="en",Name="English"},
new Language{Code="de",Name="German"},
};
}
}