我首先使用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;
}
然而,记录选择器保持禁用状态,当我在导航栏中单击“保存”时,新记录不会保存。
答案 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;