在 C# 中,我添加了一个属性,该属性返回一个下拉选择框的元组列表。该列表包含来自资源文件的字符串。在语言更改时,列表中的值会更新。但是在调用属性时,返回的值不会被刷新。
下面是代码
private List<Tuple<string, string>> _languageList = new List<Tuple<string, string>>
{
new Tuple<string, string>("", AppResources.Automatic),
new Tuple<string, string>("0407", AppResources.LanguageGerman),
new Tuple<string, string>("0809", AppResources.LanguageUKEnglish),
new Tuple<string, string>("0409", AppResources.LanguageUSEnglish),
new Tuple<string, string>("0c0a", AppResources.LanguageSpanish),
new Tuple<string, string>("0c0c", AppResources.LanguageFrenchCanadian),
new Tuple<string, string>("040c", AppResources.LanguageFrench),
new Tuple<string, string>("0413", AppResources.LanguageDutch)
};
public List<Tuple<string, string>> LanguageList
{
get
{
return _languageList;
}
}
这就是我调用元组值的方式(带有 lcid 和语言名称的键值对)
SelectedLanguage = LanguageList.FirstOrDefault(q => q.Item1 == CurrentSettings.SelectedLanguage) ?? LanguageList[0];
在语言更新时,资源字符串采用翻译后的值。但是属性 LanguageList 返回一个过时的列表,该列表在应用程序启动时首先被初始化。
关于如何刷新此语言更改列表的任何建议?
提前致谢。