Как я могу объединить двух учеников в совместный DisplayMember комбинированного списка?
У меня есть следующий код, чтобы заполнить комбинированный список содержимым общего списка, пытаясь использовать объединение FirstName и LastName в качестве 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 комбинированного списка?
1 ответ
Решение
Я бы продлил Student
класс со свойством, которое возвращает "FirstName + LastName"
лайк...
...
public string DisplayName
{
get
{
return string.Format("{0} {1}", this.FirstName, this.LastName);
}
}
...
чем присвоить это свойство DisplayMember
comboBoxStudents.DisplayMember = "DisplayName";