Tôi đang cố gắng để có được một ListBox để hiển thị một nối của nhiều hàng của bảng Accommodation
.Nhiều DisplayMember sử dụng lớp đặc biệt
Vì tôi không thể chỉnh sửa nguồn dữ liệu, tôi đã chuẩn bị một lớp, AccommodationEntity
, chứa cả đối tượng Accommodation
gốc và chuỗi tôi muốn ListBox hiển thị.
Tuy nhiên, vì một lý do nào đó, tôi không đặt thuộc tính DisplayMember của ListBox, do đó hiển thị jibber-jabber mặc định.
tôi thiết lập ListBox như sau:
accommodationList.DisplayMember = "textToShow";
// load and set up accommodation
List<AccommodationEntity> relatedAccommodations =
dt.listHolidayAccommodation(relatedHoliday);
accommodationList.DataSource = relatedAccommodations;
accommodationList.Refresh();
Lớp cho các đối tượng được lưu trữ trong các nguồn dữ liệu trông như thế này:
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 + ")";
}
}
} '
Và cuối cùng, có là phương pháp thực hiện một số tìm kiếm (trả về các đối tượng chính xác):
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;
}
Tôi biết dataSource chứa dữ liệu phù hợp, nhưng vì một lý do nào đó, có vẻ như thuộc tính DisplayMember vẫn được đặt là ""
.
Mọi trợ giúp sẽ được đánh giá cao.
Cảm ơn.
Xin lỗi tôi quên đề cập đến, tôi làm điều đó khi biểu mẫu khởi bằng cách sử dụng accommodationList .DisplayMember = "textToShow"; nơi textToShow là tên của thuộc tính chứa chuỗi Tôi muốn hiển thị – Ondrej
@Ondrej: Nếu bạn đang thiết lập các thuộc tính như bạn có nghĩa vụ, có lẽ đăng một số mã cho các lớp có liên quan khác. Có lẽ một cái gì đó không được thiết lập chính xác cho họ. –
cập nhật bài đăng giới thiệu – Ondrej