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 に答える