Во-первых, предлагаемый вами код даже не скомпилируется - вам не хватает заглавных букв в одной области и точки с запятой в конце последней строки (и это не проблема сборки, но я считаю, что для правильного отображения вы хотите, чтобы пробел после фамилии, а не до). Во-вторых, если вы исправите это, то нет никаких видимых причин для того, чтобы не отображать участников. Вы уверены, что возвращаемое значение GetEmployees
содержит хотя бы один элемент?
Примите во внимание следующее:
Наш тип работника ...
public class Employee
{
public Employee() { }
public Employee(int id, string firstName, string lastName)
{
EmployeeID = id;
FirstName = firstName;
LastName = lastName;
}
public int EmployeeID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
И в пределах события загрузки нашей формы ...
private void myForm_Load(object sender, EventArgs e)
{
var employeeA = new Employee(28, "Charlie", "Brown");
var employeeB = new Employee(42, "Familiar", "Stranger");
var employees = new List<Employee>();
employees.Add(employeeA);
employees.Add(employeeB);
var myDataGridView = new DataGridView();
var myDataGridComboBoxColumn = new DataGridViewComboBoxColumn();
myDataGridComboBoxColumn.HeaderText = "Employee";
myDataGridComboBoxColumn.ValueMember = "ID";
myDataGridComboBoxColumn.DisplayMember = "Name";
myDataGridComboBoxColumn.DataSource = employees.Select(employee => new
{
Name = employee.LastName + ", " + employee.FirstName,
ID = employee.EmployeeID
}).ToList();
myDataGridView.Columns.Insert(0, myDataGridComboBoxColumn);
Controls.Add(myDataGridView);
myDataGridView.Dock = DockStyle.Fill;
}
Результат абсолютный: ожидаемые элементы отображаются в раскрывающемся списке. Попробуй и пройди свой путь, чтобы избавиться от ошибок при сборке, чтобы, по-видимому, волшебным образом исходить из этой точки - ты их не заметил? Обратите внимание, как вам удалось «увидеть» что-либо.