C#-comboBox1的数据源取决于comboBox2的值

时间:2019-09-11 11:12:07

标签: c# arrays winforms combobox

我按照如下方法创建了两个类:

class City
{
public string CityName { get; set; }
public string Region { get; set; }

public City(string sCountryName, string sLanguage)
{
    this.CityName = sCountryName;
    this.Region = sLanguage;
}
public override string ToString()
{
    return CityName;
}

class Country
{
public string CountryName { get; set; }
public City[] cities;

public Country(string sCountryName, City[] sCities)
{
    this.CountryName = sCountryName;
    this.cities = sCities;
}

在那之后,我如下创建了usa_cities和german_cities的对象:

City[] usa_cities = new City[] {new City("Washington", "English"),
                        new City("New York", "English"),
                        new City("San Francisco", "English") };

City[] german_cities = new City[] {new City("Berlin", "German"),
                        new City("Hamburg", "German"),
                        new City("Frankfurt", "German") };

然后我按照如下方法创建了一个对象“国家”:

Country[] countries = new Country[] {new Country("USA", usa_cities),
                                    new Country("Germany", german_cities) };

在我的应用程序中,我有两个组合框。 第一个组合框允许用户按照以下方式选择国家/地区:

        comboBox1.DataSource = countries;
        comboBox1.DisplayMember = "CountryName";
        comboBox1.ValueMember = "CountryName";
        comboBox1.SelectedItem = -1;

我想根据comboBox1中选择的值来设置comboBox2.DataSource。 例如,用户在第一个组合框中选择“美国”,第二个组合框应填写usa_cities。 如果用户选择“德国”,则第二个组合框应填充“德国城市”。

请问我该怎么办?

谢谢

1 个答案:

答案 0 :(得分:0)

您应该为ComboBox1.SelectedIndexChanged事件添加一个事件处理程序,然后根据ItemsSource的情况使用它来更改ComboBox2的ComboBox1.SelectedIndex