如何在不使用数据集或数据表的情况下向datagridview添加新行?

时间:2009-08-04 21:24:23

标签: c# .net data-binding datagridview

我正在使用List绑定到dataGridView。 我希望用户能够添加新行。

我尝试过使用BindingList和BindingSource。

这是我的绑定(不包括我在添加数据源之前添加到datagridview的组合框列:

binding = new BindingSource();
binding.DataSource= _Rows;
_dg.DataSource = binding; 

这是填充_Rows

的代码
protected override List<BusinessApp> getRows(DataGridViewManager manager)
    {
        var dc = manager.dc.DcHerb;
        return (from p in dc.apps
                where p.zQueueId == this.ZQueueId
                select p)
                      .ToList().ToBusinessApp(dc);
    }

这就是我想要获得新行的内容。没有异常发生,但dataGridView似乎根本没有变化,即使_Rows计数从68变为69

private void newRow()
    {

        _Rows.Add(new BusinessApp(_manager.dc.DcHerb, new app() {acaps="1234"  }));

        //_dg.DataSource = binding; //tried rebinding here
        //_dg.DataSource = _Rows;
    }

2 个答案:

答案 0 :(得分:0)

我好像你有任何外键绑定到另一个表,如果是,你可以为新添加的行分配一个键,datagrid将显示当前新添加的行。否则,您可能还会遗漏代码datagrid.EndEdit()

答案 1 :(得分:0)

如何在已定义的“绑定”成员变量上调用“AddNew()”方法?

binding.AddNew();
// and set the needed columns...
((binding.Current.Row) as <yourTypedDataTableRow>).<columnName> = <someValue>;