我的插入行在哪里? (DataGridView中)

时间:2009-06-22 20:08:21

标签: c# data-binding datagridview

我正在使用Datagridview(无界模式),我在设计器中选择了“启用添加”。

表单加载时,不会填充网格(下拉选择供应商和按钮以查看别名),并在选项卡中显示一行*。

但是,当我填充网格时,我不再有这个插入行来添加到集合中。

这基本上就是我在做什么:

List<SupplierAlias> aliases = //some db lookup.
aliasGrid.AutoGenerateColumns = false;
aliasGrid.DataSource = aliases;

列在设计器中定义为未绑定列。

以前,我正在使用清除aliasGrid.DataBindings,但是我把它拿出来了,它仍然删除了插入行。

2 个答案:

答案 0 :(得分:0)

SupplierAlias是否有公共无参数构造函数?如果没有,您需要使用IBindingList实现来提供新行 - 例如BindingSource

    BindingSource bs = new BindingSource();
    bs.DataSource = yourList;
    bs.AddingNew += delegate(object sender, AddingNewEventArgs args)
    {
        args.NewObject = new SomeType(args);
    };
    grid.DataSource = bs;

答案 1 :(得分:0)

回答自己的问题供他人参考。

我更改了列表<SupplierAlias&gt;我曾经将数据绑定到BindingList <SupplierAlias&gt;我现在有插入行。