データベースから取得したグループと項目を含む ListView を Windows フォームで作成しようとしています。
私のListViewは「lstItems」と呼ばれています
最初は、ListView は空で、プログラムの実行中にデータを入力します。
これは、グループを作成するために使用するコードです。
foreach(DataRow r in tasksTbl.Rows)
{
string groupName = "group" + num;
num++;
lstItems.Groups.Add(groupName, r.Field<string>(0));
}
tasksTbl テーブルは空ではなく、この時点では画面に表示されないいくつかのグループが作成されます。
これは、グループのアイテムとサブアイテムを作成するために使用するコードです。
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 テーブルは空ではなく、各グループにアイテムとサブアイテムを作成します。
デバッガーで、グループにアイテムが適切に含まれていることがわかります。
私の問題は、画面にグループやアイテムが表示されないことです。
私は何が欠けていますか?
誰か手を貸してくれませんか?
前もって感謝します!