c# - 如何选择列表框中的项目,以便列表框呈现所选项目的子数组
问题描述
我仍在学习 C# 的技巧,所以我不确定我可以使用的工具。
我在项目的类数组中有一个项目的类数组(例如 carBrand[ ] ...carBrand(netWorth, numberofcars, carModel[ ] ) ... 中的 carModel[ ]。更大的数组 carBrand[ ] 在加载时显示在列表框中。
我希望用户能够在列表框中选择一个项目,以便列表框显示所选项目的子数组。我该怎么做呢?
解决方案
您可以创建 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 框
推荐阅读
- mysql - 没有连接的 MySQL 更新查询
- php - laravel中的mysql查询突然不起作用
- python - 美丽的汤不显示网页上看到的文字
- postgresql - “psql -c”行中的尾随命令行参数:它是什么?
- machine-learning - 在 OLS 中,为什么在计算线性回归中的误差时平方优于绝对值?
- makefile - 我可以控制 C++ 项目的 .d 依赖文件的输出目录吗?
- omnet++ - 如何在 omnet 中编写嵌套的 for 循环?
- objective-c - 处理左键和右键单击 NSStatusItem 的问题
- android - 如何以编程方式在有根的 android 设备中访问 /data/data/a.log 之类的根文件?
- c++ - 在c ++中交换短语中单词的前两个字母