實體類 Room 有 RoomNo、BedCount 兩屬性,ComboBox 需顯示「101室(2床)」格式。
public class Room {
public string RoomNo { get; set; }
public int BedCount { get; set; }
public string DisplayText => $"{RoomNo}({BedCount}床)"; // C# 6+ expression-bodied
}
綁定:comboBox.DisplayMember = "DisplayText";
public override string ToString() => $"{RoomNo}({BedCount}床)";
綁定:comboBox.DisplayMember = "";(空字串會自動呼叫 ToString)。
var displayList = rooms.Select(r => new {
Room = r,
Text = $"{r.RoomNo}({r.BedCount}床)"
}).ToList();
comboBox.DataSource = displayList;
comboBox.DisplayMember = "Text";
comboBox.ValueMember = "Room";
Room selected = (Room)comboBox.SelectedValue; // 方案三
// 或
Room selected = (Room)comboBox.SelectedItem; // 方案一/二