首页 > 解决方案 > 如何选择列表框中的项目,以便列表框呈现所选项目的子数组

问题描述

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

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

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

标签: c#arraysvisual-studiolistboxlistboxitem

解决方案


您可以创建 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;

}

它有点伪代码,但你明白了 - 当你选择品牌时,你会用每个品牌中保留的该品牌的模型填充模型 lst 框


推荐阅读