我怎么知道在列表视图 + 图像列表中选择了哪个项目

本文关键字:列表 选择 项目 图像 视图 我怎么知道 | 更新日期: 2023-09-27 18:33:29

这是我在这个网站上发布问题的第一个时间,我需要一些帮助。这是我的代码

private void loadMatrixOfTables()
{
    try
    {
        var tb = BaSic.db.tb_Tables; //load database with LINQ
        lsvTables.Clear(); //this is my lisview
        foreach (var b in tb)
        {
            if (b.Status == true)
            {
                lsvTables.Items.Add(b.Name,1);
            }
            else
            {
                lsvTables.Items.Add(b.Name, 0);
            }
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show("Error: " + ex.ToString());
    }
}

我的表有 2 个字段:ID 和名称我需要做什么来获取项目值,而不是项目文本。

我怎么知道在列表视图 + 图像列表中选择了哪个项目

我不知道

b 的类型,所以这个例子使用 2 个已知属性 id 和字符串,假设它们分别是 int 和一个字符串。只需为包含类更改它们即可。

首先,您需要创建自己的ListViewItem,以支持在listView上显示名称并在需要时获取他的ID。在您的情况下,它看起来像这样:

public class CustomListViewItem : ListViewItem
{
    public CustomListViewItem(int id,  string name)
    {
        Id = id;
        Name = name;
    }
    public int Id { get; set; }
    public string Name { get; set; }
}

使用它

首先创建您的项目

var item = new CustomListViewItem(id, name)

要在列表中显示名称,只需添加:

item.Text = name

然后添加到列表视图:

lsvTables.Items.Add(item,1)

若要检索所选项的 ID,只需将选定项强制转换为自定义列表视图项。例如:

int id = (CustomListViewItem)lsvTables.SelectedItems[0].Id;