c# - Multiple DisplayMember using special class -
c# - Multiple DisplayMember using special class -
i trying listbox display concatenation of multiple rows of table accommodation
.
because can't edit datasource, prepared class, accommodationentity
, contains both original accommodation
object , string want listbox display.
however, reason, fail set displaymember property of listbox, displays default jibber-jabber.
i set listbox follows:
accommodationlist.displaymember = "texttoshow"; // load , set accommodation list<accommodationentity> relatedaccommodations = dt.listholidayaccommodation(relatedholiday); accommodationlist.datasource = relatedaccommodations; accommodationlist.refresh();
the class objects stored in datasource looks this:
class accommodationentity { public accommodation classicaccommodation; public string texttoshow; public accommodationentity(stay relatedstay) { this.classicaccommodation = relatedstay.accommodation; string = relatedstay.datefrom.tostring(); string = relatedstay.dateto.tostring(); string city = relatedstay.accommodation.location.tostring(); string hotelname = relatedstay.accommodation.name.tostring(); this.texttoshow = hotelname + ", " + city + " (" + + " - " + + ")"; } }
} `
and finally, there method searching (returning right objects):
public list<accommodationentity> listholidayaccommodation(holiday selectedholiday) { list<accommodationentity> ubytovani = new list<accommodationentity>(); var stays = singlestay in selectedholiday.stays select singlestay; foreach (stay singlestay in stays) { accommodationentity newstay = new accommodationentity(singlestay); ubytovani.add(newstay); } homecoming ubytovani; }
i know datasource contains right data, reason, seems displaymember property remains set ""
.
any help appreciated.
thanks.
did seek set displaymember , displayvalue this. "name"/"value" name of property in accomodation class.
list<accommodationentity> relatedaccommodations = dt.listholidayaccommodation(relatedholiday); accommodationlist.datasource = relatedaccommodations; accommodationlist.displaymember = "name"; accommodationlist.valuemember = "value";
update:
make sure texttoshow
property, not public field.
c# winforms data-binding
Comments
Post a Comment