簡體   English   中英

如何在不使用數據集或數據表的情況下向datagridview添加新行?

[英]How do I Add a new row to a datagridview without using a dataset or datatable?

我正在使用列表綁定到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);
    }

這就是我想要的新行。 不會發生異常,但是即使_Rows計數從68變為69,dataGridView似乎也沒有改變。

private void newRow()
    {

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

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

我想您是否有任何外鍵綁定到另一個表,如果是,則可以將鍵分配給新添加的行,而datagrid將顯示當前新添加的行。 否則,您可能還會缺少代碼datagrid.EndEdit()

如何在已經定義的“綁定”成員變量上調用“ AddNew()”方法?

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM