У меня есть следующий код, чтобы заполнить выпадающий с содержанием общего списка, пытаясь использовать конкатенацию FirstName и LastName, как DisplayMember выпадающего списка в:Как я могу объединить двух членов класса в совместное отображение DisplayMember?
private void PopulateStudentsComboBox()
{
if (System.IO.File.Exists(AYttFMConstsAndUtils.STUDENTS_FILENAME))
{
if (null == _studentsList)
{
var students = System.IO.File.ReadAllText(AYttFMConstsAndUtils.STUDENTS_FILENAME);
_studentsList = JsonConvert.DeserializeObject<List<Student>>(students);
}
// Sort by firstname
_studentsList = _studentsList.OrderBy(i => i.FirstName).ToList();
comboBoxStudents.DataSource = _studentsList;
string firstNameLastName = "FirstName LastName";
comboBoxStudents.DisplayMember = firstNameLastName;
comboBoxStudents.ValueMember = "StudentID";
}
}
Это не работает; ValueMember становится DisplayMember.
Это работает:
. . .
comboBoxStudents.DataSource = _studentsList;
comboBoxStudents.DisplayMember = "FirstName";
comboBoxStudents.ValueMember = "StudentID";
. . .
... но не режет горчицу - мне нужно оба дали и фамилию, а не только имя (или наоборот).
Как я могу объединить два поля класса, чтобы отображать DisplayMember из списков combobox?
переопределить ToString, чтобы отобразить все, вы хотите, а затем оставить DisplayMember пустым. или создать искусственное свойство и использовать его как DisplayMember – Plutonix