数据网格中的组合框未填充数据

时间:2010-10-07 19:59:29

标签: datagrid combobox

表单加载时我正在做

DataGridViewComboBoxColumn ComboTextCol = new DataGridViewComboBoxColumn();
            ComboTextCol.Headertext = "some";
            ComboTextCol.DataSource =  GetEmployees().Select(e => new { Name = e.LastName + " ," + e.FirstName, ID = e.EmployeeID }).ToList();
            ComboTextCol.ValueMember = "ID";
            ComboTextCol.DisplayMember = "Name";
            datagrid.Columns.Insert(0,ComboTextCol)

我也试过这个datagrid.Columns.Add(ComboTextCol)

GetEmployees提供员工数据 我看到了列而不是数据...... ??

1 个答案:

答案 0 :(得分:1)

首先,您建议的代码甚至不会编译 - 您在一个区域中缺少大写,在最后一行的末尾缺少分号(而不是构建问题,但我相信要正确显示您想要的姓氏后面的空格,而不是之前的空格。其次,如果你修改它,那么没有明显的理由不显示成员。您确定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;
}

结果是绝对的:预期元素出现在下拉框中。试一试,然后用你的方法来摆脱你的构建错误,从某种程度上看,似乎神奇地从这一点开始 - 你没注意到它们吗?请注意您是如何设法“看到”任何内容的。

相关问题