2009-06-22 62 views
1

我正在使用Datagridview(無界模式),並在設計器中選擇了「啓用添加」。我的插入行在哪裏? (DataGridView)

當表單加載時,網格沒有被填充(下拉選擇供應商和按鈕來查看別名),並且在標籤中有*顯示一行。

但是,當我填充網格時,我不再有此插入行添加到集合。

這裏基本上是我在做什麼:

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

的列被定義爲在設計未綁定列。

此前,我使用清除aliasGrid.DataBindings,但我把它拿出來,它仍然刪除插入行。

回答

0

回答自己的問題,別人參考。

我更改了列表<SupplierAlias>我曾經將數據綁定到綁定列表<SupplierAlias>,並且現在有我的插入行。

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; 
+0

它確實有一個公共無參數構造函數,它將其ID設置爲一個新的GUID。 – Drithyin 2009-06-22 20:29:56