0

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

我希望它能够工作,以便
当用户打开表单时,如果数据源中没有记录,那么表单的行为就像用户单击了添加按钮一样。

我试过了

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;
    }

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

4

1 回答 1

0

我发现如果我在设置数据源之前添加了实体,导航器的行为就像我想要的那样

DbSet<Person> dset = Db.People;
bindingList = dset.Local.ToBindingList();
if (bindingList.Count == 0)
{
   var obj = CreatePerson();
   dset.Local.Add(obj);
}
 binding.DataSource = bindingList;
于 2013-01-08T09:42:11.850 回答