3

我已经DataGridView绑定了一些对象的集合。在DataGridView中,有一个ComboBox名称列表,我正在尝试将新对象添加到每个选择的集合中。但问题是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;
    }

我必须使用参数化构造函数,因为我需要将父级传递给子级。

4

1 回答 1

6

通过使用new关键字,您不会覆盖基类的方法;相反,您只在派生类中创建全新的方法,这些方法永远不会被调用。

相反,您应该重写AddNewCore()方法并返回一个新对象。

编辑:您还需要Add()将新实例添加到您的覆盖中的集合中。

于 2013-01-21T14:57:47.607 回答