Я пытаюсь получить ListBox для отображения конкатенации нескольких строк таблицы Accommodation
.
Поскольку я не могу редактировать источник данных, я подготовил класс AccommodationEntity
, который содержит как оригинальный объект Accommodation
, так и строку, которую я хочу отобразить в ListBox.
Однако по какой-то причине мне не удалось установить свойство DisplayMember ListBox, которое, таким образом, отображает jibber-jabber по умолчанию.
Я настроил список следующим образом:
accommodationList.DisplayMember = "textToShow";
// load and set up accommodation
List<AccommodationEntity> relatedAccommodations =
dt.listHolidayAccommodation(relatedHoliday);
accommodationList.DataSource = relatedAccommodations;
accommodationList.Refresh();
Класс для объектов, хранящихся в источнике данных, выглядит следующим образом:
class AccommodationEntity
{
public accommodation classicAccommodation;
public string textToShow;
public AccommodationEntity(stay relatedStay)
{
this.classicAccommodation = relatedStay.accommodation;
string from = relatedStay.dateFrom.ToString();
string to = relatedStay.dateTo.ToString();
string city = relatedStay.accommodation.location.ToString();
string hotelName = relatedStay.accommodation.name.ToString();
this.textToShow = hotelName + ", " + city + " (" + from + " - " + to + ")";
}
}
} `
И, наконец, есть метод, который выполняет некоторый поиск (возвращая правильные объекты):
public List<AccommodationEntity> listHolidayAccommodation(holiday selectedHoliday)
{
List<AccommodationEntity> ubytovani = new List<AccommodationEntity>();
var stays = from singleStay in selectedHoliday.stays
select singleStay;
foreach (stay singleStay in stays)
{
AccommodationEntity newStay = new AccommodationEntity(singleStay);
ubytovani.Add(newStay);
}
return ubytovani;
}
Я знаю, что dataSource содержит правильные данные, но по некоторым причинам кажется, что свойство DisplayMember остается установленнымдо ""
.
Буду признателен за любую помощь.
Спасибо.