在带有绑定到空数据源的bindingNavigator的winforms中 - 如何自动添加记录?

时间:2013-01-07 22:49:45

标签: winforms entity-framework-5 bindingsource

我首先使用EF代码,并且有一个带有绑定到数据源的bindingNavigator的窗体。 数据输入文本框也绑定到数据源

我希望它能够发挥作用 当用户打开表单时 如果数据源中没有记录 然后表单的行为就像用户点击了添加按钮一样。

我试过了

private void PersonForm_Load(object sender, EventArgs e)
    {
        if (bindingSource1.Count == 0)
        {
            bindingNavigator1.BindingSource.AddNew();
        }
    }
private void bindingSource1_AddingNew(object sender, System.ComponentModel.AddingNewEventArgs e)
    {
        e.NewObject = CreatePerson();
    }

 private Person CreatePerson()
    {
        var obj = new Person();
        obj.RowId = Guid.NewGuid();
        return obj;
    }

然而,记录选择器保持禁用状态,当我在导航栏中单击“保存”时,新记录不会保存。

1 个答案:

答案 0 :(得分:0)

我发现如果在设置数据源之前添加了实体,导航器就会表现我想要的

DbSet<Person> dset = Db.People;
bindingList = dset.Local.ToBindingList();
if (bindingList.Count == 0)
{
   var obj = CreatePerson();
   dset.Local.Add(obj);
}
 binding.DataSource = bindingList;