【问题标题】:Combox Box withing a Data Grid is not populated with dataDatagrid 中的组合框未填充数据
【发布时间】:2010-10-07 19:59:28
【问题描述】:

当表单加载时我正在做

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 提供员工数据 我看到了列,但没有看到数据...??

【问题讨论】:

    标签: datagrid combobox


    【解决方案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;
    }
    

    结果是绝对的:预期的元素出现在下拉框中。试一试,用你自己的方式来消除你的构建错误,看起来,从这一点开始神奇地进行——你没有注意到它们吗?请注意您是如何设法“看到”任何东西的。

    【讨论】:

    • 完成....构建成功...我的分号不在问题中...但问题是我有相同的代码...但数据网格被拖放了。 . 我更改了代码以添加 datagridcolumn 以添加到此网格...数据未填充...不知道为什么...它正在工作但仅当数据网格也被动态创建时...
    猜你喜欢
    • 1970-01-01
    • 2013-04-28
    • 2020-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多