Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winforms DataGridViewComboxColumn的数据绑定_Winforms - Fatal编程技术网

Winforms DataGridViewComboxColumn的数据绑定

Winforms DataGridViewComboxColumn的数据绑定,winforms,Winforms,在下面的代码中,名为“ConnectionType”的组合框显示所选项目,但无法更改所选项目(组合框中似乎只有一个项目)。如果我把这行注释掉 typeCol.DataPropertyName = "ConnectionTypeName"; 然后,组合框是可选择的,但当然没有选择正确的项目。我做错了什么 谢谢 private void LoadConnectionsGrid() { _dc = new EnterpriseEntities(); dataGridViewConne

在下面的代码中,名为“ConnectionType”的组合框显示所选项目,但无法更改所选项目(组合框中似乎只有一个项目)。如果我把这行注释掉

typeCol.DataPropertyName = "ConnectionTypeName";
然后,组合框是可选择的,但当然没有选择正确的项目。我做错了什么

谢谢

private void LoadConnectionsGrid()
{
    _dc = new EnterpriseEntities();
    dataGridViewConnections.AutoGenerateColumns = false;
    dataGridViewConnections.DataSource = _dc.Connection.Include("ConnectionType");

    DataGridViewComboBoxColumn typeCol =
        (DataGridViewComboBoxColumn)dataGridViewConnections.Columns["ConnectionType"];
    typeCol.DataPropertyName = "ConnectionTypeName";
    var qry = from c in _dc.ConnectionType
              select c.Type;
    typeCol.DataSource = qry;

    DataGridViewTextBoxColumn nameCol =
        (DataGridViewTextBoxColumn)dataGridViewConnections.Columns["ConnectionName"];
    nameCol.DataPropertyName = "Name";

    DataGridViewTextBoxColumn connStrCol =
        (DataGridViewTextBoxColumn)dataGridViewConnections.Columns["ConnectionString"];
    connStrCol.DataPropertyName = "ConnectionString";
}

最终,我无法让数据绑定、实体框架和组合框发挥作用,我只是创建了数据网格暴力(下面的代码)。这意味着我可以手动处理插入、更新和删除

private void LoadConnectionsGrid()
{
    DataGridViewComboBoxColumn typeCol =
        (DataGridViewComboBoxColumn)dataGridViewConnections.Columns["ConnectionType"];
    var qry = from c in _dc.ConnectionType
              select c.Type;
    typeCol.DataSource = qry;

    dataGridViewConnections.Rows.Clear();
    foreach (Connection conn in _dc.Connection.Include("ConnectionType"))
    {
        dataGridViewConnections.Rows.Add(conn.Name, 
            conn.ConnectionType.Type, conn.ConnectionString);
    }
}