Как выбрать элемент в списке, чтобы список представлял подмассив для выбранного элемента
Я все еще изучаю веревки на 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;
}
это немного псевдокод, но у вас есть идея - когда вы выбираете марку, вы заполняете поле для списка моделей, которые хранятся в каждой марке.