我有一个包含此字段的DataTable
datatable.Columns.Add("ProductID", typeof(int));
datatable.Columns.Add("LocationList", typeof(List<string>));
datatable.Columns.Add("LocationIds", typeof(List<int>));
datatable.Columns.Add("ProductName", typeof(string));
datatable.Columns.Add("Brand", typeof(string));
datatable.Columns.Add("Price", typeof(decimal));
datatable.Columns.Add("Quantity", typeof(int));
datatable.Columns.Add("Locations", typeof(string));
我将它绑定到ListView
foreach (DataRow row in productsDataTable.Rows)
{
var item = new ListViewItem(row[0].ToString());
for (var i = 1; i < productsDataTable.Columns.Count; i++)
item.SubItems.Add(row[i].ToString());
lvSearchResults.Items.Add(item);
}
我想绑定List&lt;&gt;字段,这样当选择一行时,我将能够从列表中获取数据并使用它进行一些计算。 有没有办法做到这一点?
答案 0 :(得分:2)
ListViewItem
具有Tag
属性,您可以将数据存储在以后检索和使用,例如:
foreach (DataRow row in productsDataTable.Rows)
{
var item = new ListViewItem(row[0].ToString());
// Store the specific values you want to later retrieve
item.Tag = new object[] { row["LocationList"], row["LocationIds"] };
// Or, store the whole row
item.Tag = row;
lvSearchResults.Items.Add(item);
}
答案 1 :(得分:1)
ListViewItem.Tag
属性允许您将所需内容与项目相关联。您可以将整个DataRow
存储在那里并检索所需的任何列。