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); }
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); } }
Comments
Post a Comment