.net - Populating listview through runtime in C# -


i creating listview , items , subitems being fetched database. however, when i'm running solution listview displays id. want dynamically add columns , rows make datagrid. here's code.

private void frmmain_load(object sender, eventargs e)     {         datatable table = new datatable();         table = logic.viewinfo();         listview1.view = view.details;         listviewitem mylist;         foreach (datarow row in table.rows)         {             mylist = new listviewitem();             (int = 0; < row.itemarray.length; i++)             {                 if (i == 0)                     mylist.text = row.itemarray[i].tostring();                 else                     mylist.subitems.add(row.itemarray[i].tostring());             }             listview1.items.add(mylist);         }     } 

the reason see id don't have proper columns. can add them in designer or in code.
need added "dynamically", need add many columns, values have in itemarray.

try code. working me.
there no need in using text property. each subitem stands cell.

private void frmmain_load(object sender, eventargs e) {     datatable table = logic.viewinfo(); // combine declaration , assignment     listview1.view = view.details; // better place in designer       listview1.columns.clear();     foreach (var column in datatable.columns)     {          listview1.columns.add(column.columnname); // or caption, or else     }       foreach (datarow row in table.rows)     {         listviewitem mylist = new listviewitem(); // move declaration inner scope. reinitializing reference type variable each type. in opinion, not good.         (int = 0; < row.itemarray.length; i++)         {             // don't need text property             mylist.subitems.add(row.itemarray[i].tostring());         }         listview1.items.add(mylist);     } } 

Comments