这是我第一次在这个网站上发帖提问,我需要一些帮助。 这是我的代码
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());
}
}
我的表有两个字段:id和name 我需要做的是获取项目值,而不是项目文本。
答案 0 :(得分:0)
我不知道 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
然后添加到listView:
lsvTables.Items.Add(item,1)
要检索所选项目的 id ,只需将所选项目强制转换为CustomListViewItem即可。例如:
int id = (CustomListViewItem)lsvTables.SelectedItems[0].Id;