使用文本标签和键值将项目添加到列表视图

问题描述 投票:0回答:3

我正在尝试将项目添加到

ListView
控件。 我希望添加带有文本值(显示的)和选择时具有的隐藏键值的项目。

我尝试过以下代码:

string flows_path = "C:\\temp\\Failed Electricity flows\\";
            List<ListViewItem> flows_loaded = new List<ListViewItem>();

            foreach (string s in Directory.GetFiles(flows_path, "*.rcv").Select(Path.GetFileName))
            {
                ListViewItem new_item = new ListViewItem(s, 1);
                ListViewItem.ad

                // Add the flow names to the list
                flows_loaded.Add(new_item);

            }

但它告诉我

ListViewItem
没有
(string, int)
的重载,并且它似乎没有我可以设置的“值”、“文本”或“键”值。

ListViewItem("My Item")
有效,但我不知道如何为每个项目实现一个密钥。

c# listview
3个回答
8
投票

您可以通过将其存储在

Tag
属性中来存储与 ListViewItem 关联的附加值。

ListViewItem new_item = new ListViewItem(s);
new_item.Tag = my_key_value;

预计到达时间:请记住,

Tag
属性的类型为
object
,因此在某些情况下,您可能需要在检索值时将值显式转换为正确的类型。


3
投票

您可以通过设置 ListViewItem 的 Tag-Property 来添加“隐藏”值

ListViewItem new_item = new ListViewItem(s)
{
   Tag = 1
};

0
投票

ListView具有您想要的项目key功能。 您可以通过这种方式向项目添加密钥:

listView1.Items.Add("yourKey", "itemText", imageIndex);

但是如果您想通过 ListViewItem 对象添加到 ListView,则对象构造函数没有 item 的 key 参数。然后您可以使用 Name 属性(实际上是 item key 属性)。

ListViewItem new_item = new ListViewItem("itemText", imageIndex){ Name = "yourKey"};

// Add the flow names to the list
flows_loaded.Add(new_item);
© www.soinside.com 2019 - 2024. All rights reserved.