我正在使用Datagridview(无界模式),我在设计器中选择了“启用添加”。
表单加载时,不会填充网格(下拉选择供应商和按钮以查看别名),并在选项卡中显示一行*。
但是,当我填充网格时,我不再有这个插入行来添加到集合中。
这基本上就是我在做什么:
List<SupplierAlias> aliases = //some db lookup.
aliasGrid.AutoGenerateColumns = false;
aliasGrid.DataSource = aliases;
列在设计器中定义为未绑定列。
以前,我正在使用清除aliasGrid.DataBindings,但是我把它拿出来了,它仍然删除了插入行。
答案 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;我现在有插入行。