按字符串而不是索引获取子项

时间:2014-03-17 23:51:29

标签: c# listview

我有一个简单的ListView,其中有两列:ID | Name

我会从所选行中获取ID和名称:

ListViewItem item = listView1.SelectedItems[0];
MessageBox.Show(item.subItem[0].Text + " " + item.subItem[1].Text);

有没有办法不通过数字(0或1),而是通过nameColumn,类似于这个datareader示例?:

sqlite_cmd.CommandText = "select * from mytable;";
sqlite_datareader = sqlite_cmd.ExecuteReader();
// ...
string password = sqlite_datareader["password"].ToString();

我会这样对listView,详情:

MessageBox.Show(item.subItem["ID"].Text + " " + item.subItem["Name"].Text);

有什么办法吗?

2 个答案:

答案 0 :(得分:0)

您可以完全按照演示的方式执行此操作,但您使用的字符串必须是相应ColumnHeader的Name属性的值,而不是Text。名称和文本可能是相同的,但重要的是名称。

更正:它实际上是需要指定的ListViewSubItem的名称,而不是相应ColumnHeader的名称。

答案 1 :(得分:0)

解决:

       item.SubItems[listView1.Columns.IndexOf(ID)].Text

: - )