如何在列表框中选择一个项目,以便该列表框显示所选项目的子数组

时间:2018-12-13 00:01:47

标签: c# arrays visual-studio listbox listboxitem

我仍在学习C#的技巧,因此不确定我可以使用的工具。

我在一个项目的类数组中有一个项目的类数组(例如,carBrand []内的carModel [] ... carBrand(netWorth,numberofcars,carModel [])...)。加载时,较大的数组carBrand []显示在列表框中。

我希望用户能够在列表框中选择一个项目,以便列表框显示所选项目的子数组。我该怎么做呢?

1 个答案:

答案 0 :(得分:0)

您可以创建2个列表框并执行以下操作

class Brand
{
    public string Name {get; set;}
    public Model[] Models {get; set;}
}

class Model
{
    public string Name {get; set;}
}


// init your brand list, and model list for each brand
private Brands[] _brands = .  . . 
// init lists
lstBrands.DisplayMemeber = "Name";
lstBrands.ValueMemeber = "Name";
lstBrands.DataSource = _brands;

// then on lstBrands selected intex changed
private void lstBrands_SelectedIndexChanged (sender, e)
{
    if (lstBrands.SelectedIndex = -1)
    {
        lsltModels.DataSource = null;
        return;
    }
    var brand = (Brand)lstBrands.SelectedItem //<-- note - ITEM, not index
    lsltModels.DisplayMemeber = "Name";
    lsltModels.ValueMemeber = "Name";
    lsltModels.DataSource = brand.Models;

}

它有点伪代码,但是您可以理解-选择品牌时,您用每个品牌中保留的该品牌的模型填充模型第一个框。