【发布时间】:2017-01-18 14:46:08
【问题描述】:
我正在尝试在 Windows 窗体中创建一个 ListView,其中包含我从数据库中获取的组和项目。
我的 ListView 被称为“lstItems”
一开始,ListView 是空的,我在程序运行期间用数据填充它。
这是我用来创建组的代码:
foreach(DataRow r in tasksTbl.Rows)
{
string groupName = "group" + num;
num++;
lstItems.Groups.Add(groupName, r.Field<string>(0));
}
taskTbl 表不是空的,它创建了几个我现在在屏幕上看不到的组。
这是我用来为组创建项目和子项目的代码:
private void CreateItem(DataTable tbl)
{
int taskId = tbl.Rows[0].Field<int>(0);
string taskName = tbl.Rows[0].Field<string>(1);
DateTime startDate = tbl.Rows[0].Field<DateTime>(2);
DateTime endDate = tbl.Rows[0].Field<DateTime>(3);
string dateStr = startDate.ToString() + " - " + endDate.ToString();
ListViewItem item = new ListViewItem(dateStr);
item.Tag = taskId.ToString();
foreach (DataRow r in tbl.Rows)
{
string position = r.Field<string>(5);
string soldier = r.Field<string>(6);
item.SubItems.Add(soldier + " (" + position + ")");
}
foreach(ListViewGroup grp in lstItems.Groups)
if (grp.Header.Equals(taskName))
grp.Items.Add(item);
}
这里的 tbl 表也不为空,它为每个组创建项目和子项目。
我可以在调试器中看到组正确地拥有项目。
我的问题是我在屏幕上看不到组或项目。
我错过了什么?
有人可以帮帮我吗?
提前谢谢你!
【问题讨论】:
-
在屏幕上是什么意思?在调试器监视窗口中?
-
在屏幕上我根本没有看到该项目。当我在调试器的代码中使用断点时,我可以看到组属性中的项目。
-
您必须将组分配给 LustViewItem 属性组,反之亦然。检查msdn.microsoft.com/en-us/library/ezh1batz(v=vs.110).aspx
标签: c# winforms listview listviewitem listviewgroup