如何将两个 class 成员合并为组合框的联合 DisplayMember?
How can I combine two class members to be a combobox's joint 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";
. . .
...但不切芥末 - 我需要名字和姓氏,而不仅仅是名字(反之亦然)。
如何组合两个 class 字段来组成组合框的 DisplayMember?
我会用 属性 扩展 Student
class returns
"FirstName + LastName"
喜欢...
...
public string DisplayName
{
get
{
return string.Format("{0} {1}", this.FirstName, this.LastName);
}
}
...
而不是将此 属性 分配给 DisplayMember
comboBoxStudents.DisplayMember = "DisplayName";
我有以下代码用通用列表的内容填充组合框,尝试使用 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";
. . .
...但不切芥末 - 我需要名字和姓氏,而不仅仅是名字(反之亦然)。
如何组合两个 class 字段来组成组合框的 DisplayMember?
我会用 属性 扩展 Student
class returns
"FirstName + LastName"
喜欢...
...
public string DisplayName
{
get
{
return string.Format("{0} {1}", this.FirstName, this.LastName);
}
}
...
而不是将此 属性 分配给 DisplayMember
comboBoxStudents.DisplayMember = "DisplayName";