c# - How would I display an object that points to a list in a ListBox? -


i have list of objects find way display information for, want know if using listbox. problem figuring out how have list of objects have multiple properties display, , 1 of them list inside object this:

public  class records {    //i may want think adding way keep track of book number record part of    //rather keeping book title. way can easier reference.   public  class records {  public string title { get; set; }  public string firstname { get; set; }  public string lastname { get; set; }  public list<int> pages { get; set; }  public string person { get; set; }  public string tag { get; set; }  public int booknumber { get; set; }  public string date { get; set; }  private type _type;  public type type  {           {        return this._type;      }       set      {          this._type = value;          grabdate();      }  } } 

because of list of pages in records, how display using listbox? better use datagridview?

here 2 methods try. may want refer this question accepted answer suggests using datagridview

the first uses listbox, , doesn't seem preferred method

the second way of doing it, recommend uses listview, looks lot nicer

listbox

var recordlist = buildrecords();  foreach (var item in recordlist) {     // distinguish between 'pages' , other properties     var gap = "    ";      listbox1.items.add(item.title);     listbox1.items.add(item.firstname);     listbox1.items.add(item.lastname);      foreach (var page in item.pages)     {         listbox1.items.add(gap + page);     }      listbox1.items.add(item.person);     listbox1.items.add(item.tag);     listbox1.items.add(item.booknumber);     listbox1.items.add(item.date); } 

enter image description here

listview

var recordlist = buildrecords();  var header1 = listview1.columns.add("title", -2, horizontalalignment.left); var header7 = listview1.columns.add("firstname", -2, horizontalalignment.left); var header6 = listview1.columns.add("lastname", -2, horizontalalignment.left); var header5 = listview1.columns.add("pages", -2, horizontalalignment.left); var header4 = listview1.columns.add("person", -2, horizontalalignment.left); var header3 = listview1.columns.add("tag", -2, horizontalalignment.left); var header2 = listview1.columns.add("booknumber", -2, horizontalalignment.left); var header8 = listview1.columns.add("date", -2, horizontalalignment.left);  foreach (var record in recordlist) {     var lvi = new listviewrecord(new[] {         record.title,         record.firstname,         record.lastname,         record.pages[0].tostring(),         record.person,         record.tag,         record.booknumber.tostring(),         record.date});      listview1.items.add(lvi);      (int = 1; < record.pages.count-1; i++)     {         var lvi2 = new listviewitem(new[] {         string.empty,         string.empty,         string.empty,         record.pages[i].tostring(),         string.empty,         string.empty,         string.empty,         string.empty});          listview1.items.add(lvi2);     } } 

enter image description here


Comments

Popular posts from this blog

mysql - Dreamhost PyCharm Django Python 3 Launching a Site -

java - Sending SMS with SMSLib and Web Services -

java - How to resolve The method toString() in the type Object is not applicable for the arguments (InputStream) -