Как выбрать элемент в списке, чтобы список представлял подмассив для выбранного элемента

Я все еще изучаю веревки на C#, поэтому не уверен в инструментах, которые у меня есть.

У меня есть массив классов элементов в массиве классов элементов (например, carModel[ ] внутри carBrand[ ] ...carBrand(netWorth, numberofcars, carModel[ ]) ...). Большой массив carBrand [] отображается в списке при загрузке.

Я хочу, чтобы пользователь мог выбрать элемент в поле списка, чтобы в списке отображался подмассив для выбранного элемента. Как мне это сделать?

1 ответ

Вы можете создать 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;

}

это немного псевдокод, но у вас есть идея - когда вы выбираете марку, вы заполняете поле для списка моделей, которые хранятся в каждой марке.

Другие вопросы по тегам