افزودن گروه و آیتمهای هر گروه به listview
سلام
من کد زیر رو برای اضافه کردن گروه و ایتمهای مربوط به هر گروه نوشتم ولی مشکلش اینه که به ازای هر آیتم یک گروه تشکیل میده و نمیتونه آیتمهای با گروه مشابه رو تو یک گروه بزاره.
myClass clsRecord = new myClass();
DataTable dt = clsRecord.Get_All_Record();
listView1.Groups.Clear();
listView1.Items.Clear();
ListViewGroup lvg;
ListViewItem lvi;
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow drow = dt.Rows[i];
lvg = new ListViewGroup(drow["Group_Title"].ToString());
if (!listView1.Groups.Contains(lvg))
listView1.Groups.Add(lvg);
lvi = new ListViewItem(drow["Item_title"].ToString(), lvg);
listView1.Items.Add(lvi);
}
نقل قول: افزودن گروه و آیتمهای هر گروه به listview
متد Contains فقط بر اساس Header گروه ها جستجو نمی کنه، به همین دلیل، گروه مربوطه رو پیدا نمی کنه.
می تونید از متد زیر استفاده کنید:
private ListViewGroup ExistGroup(string strGName)
{
foreach (ListViewGroup lvg in listView1.Groups)
if (lvg.Header == strGName)
return lvg;
return null;
}
و کدتون رو به صورت زیر تغییر بدید:
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow drow = dt.Rows[i];
lvg = ExistGroup(drow["Group_Title"].ToString());
if (lvg==null)
{
lvg = new ListViewGroup(drow["Group_Title"].ToString());
listView1.Groups.Add(lvg);
}
lvi = new ListViewItem(drow["Item_title"].ToString(), lvg);
listView1.Items.Add(lvi);
}