我正在使用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;
}
答案 0 :(得分:0)
我好像你有任何外键绑定到另一个表,如果是,你可以为新添加的行分配一个键,datagrid将显示当前新添加的行。否则,您可能还会遗漏代码datagrid.EndEdit()
答案 1 :(得分:0)
如何在已定义的“绑定”成员变量上调用“AddNew()”方法?
binding.AddNew();
// and set the needed columns...
((binding.Current.Row) as <yourTypedDataTableRow>).<columnName> = <someValue>;