2013-01-21 29 views
2

我有DataGridView綁定在某些對象的集合上。在DataGridView,有一個ComboBox與名單的名單,我試圖添加新的對象收集每個選擇。 但問題是,AddNew()總是調用子的默認構造函數。 :/ 這裏有一個代碼:使用AddNew調用參數化構造函數

public class Parent:BindingList<Child> 

public Child ChildProperty{get;set;} 

public new object AddNew() 
    { 
     return ChildProperty; 
    } 

public new void AddingNew(object sender, AddingNewEventArgs e) 
    { 
     ChildProperty = new Child(this); 
     e.NewObject = ChildProperty; 
    } 

我必須使用參數的構造函數,因爲我需要通過父母和孩子之間。

回答

5

通過使用new關鍵字,您不覆蓋基類的方法;相反,您只是在派生類中創建全新的方法,而這些方法從未被調用過。

取而代之,你應該覆蓋的方法AddNewCore()並返回一個新的對象。

編輯:您還需要Add()將新實例集中到您的覆蓋中。

+0

非常感謝喲快速回答! Overriden AddNewCore()會導致「數據超出範圍......」。 AddingNew()罰款嗎? – user1997418

+0

什麼是確切的消息和堆棧跟蹤? – SLaks

+0

@ user1997418:我的錯;看我的編輯。發生在DataGridView – SLaks

相關問題