如何使用CultureInfo中的两个元素填充组合框

时间:2017-03-09 23:34:01

标签: c# winforms combobox .net-4.5

我需要构建一个函数,用CultureInfo中的2个元素(EnglishName和CurrencyEnglishName)填充 Combobox 。在这里阅读其他帖子,我找到了下面的代码,使用列表将 Combobox 填充为一个元素。如何使用与此类似的代码使用2个元素填充 Combobox

public static List<string> GetCountryList()
{
    List<string> cultureList = new List<string>();


    CultureInfo[] cultures =  CultureInfo.GetCultures(CultureTypes.SpecificCultures);

    foreach (CultureInfo culture in cultures)
    {
        RegionInfo region = new RegionInfo(culture.LCID);

        if (!(cultureList.Contains(region.EnglishName)))
        {
            cultureList.Add(region.EnglishName);                     
        }
    }

    return cultureList;
}

其他信息:Framework 4.5,Windows Form。

1 个答案:

答案 0 :(得分:-1)

请试试这个,我已经测试过。
首先定义绑定的自定义类:

public class CountryCurrencyPair
{
    public string Country { get; set; }
    public string Currency { get; set; }
}

然后简化Linq的查询:

    public List<CountryCurrencyPair> GetCountryList()
    {
        return CultureInfo.GetCultures(CultureTypes.SpecificCultures)
            .Select(c => new RegionInfo(c.LCID)).Distinct()
            .Select(r => new CountryCurrencyPair()
            {
                Country = r.EnglishName,
                Currency = r.CurrencyEnglishName
            }).ToList();
    }

最后绑定到控件:

    private void button1_Click(object sender, EventArgs e)
    {
        List<CountryCurrencyPair> lst = GetCountryList();
        this.comboBox1.DisplayMember = "Country";
        this.comboBox1.ValueMember = "Currency";
        this.comboBox1.DataSource = lst;
    }