当前位置:编程学习 > C#/ASP.NET >>

[4.0][Entity Framework][DataGridView]add时DataGridView无反应,但是Delete的时候正常刷新

各位,在下遇到一个问题
在winforms下面用"正规"方法(也就是先建立数据库->建立EF模型->绑定到控件的顺序)
环境是:
sqlcompact 3.5 sp1
打了sp1的vs2010估计ef也是3.5
一张order表


        private System.Windows.Forms.BindingSource orderBindingSource;
        this.dataGridView1.DataSource = this.orderBindingSource; //建立bindingSource和gridview的关系



        TestDbCompactEntities db = new TestDbCompactEntities(); //这是一个EF实体对象上下文的实例

        private void Form1_Load(object sender, EventArgs e)
        {
            orderBindingSource.DataSource = db; //绑定到上下文
            orderBindingSource.DataMember = "Orders";
        }


按这个顺序搞好后做两个按钮


        //添加一个order对象到表
        private void button2_Click(object sender, EventArgs e)
        {
            Order od = new Order();
            od.OrderID = Guid.NewGuid();
            od.OrderName = "test";
            db.Orders.AddObject(od);
            db.SaveChanges();
            db.AcceptAllChanges();
        }
        //删除order对象
        private void button3_Click(object sender, EventArgs e)
        {
            Order od = db.Orders.First();
            db.Orders.DeleteObject(od);
            db.SaveChanges();
            db.AcceptAllChanges();
        }


结果发现添加的时候datagridview不更新
但是数据能进去数据源

删除的时候一切正常

另外,添加的时候如果是在grid上面操作则正常

//------------------------------------

我自己的看法是:

直接在ObjectContex.ObjectSet上面AddObject()的动作

是不是ObjectSet不发通知给CurrencyManager,所以CM不更新表(因为我调试的时候发现orderBindingSource.CurrencyManager没有收到任何事件)导致跟orderBindingSource绑定的dataGridView不更新

那么问题是为什么删除的时候能够正常更新呢?

不解?望大家指点

谢谢! --------------------编程问答-------------------- --------------------编程问答-------------------- 請參考
http://itgroup.blueshop.com.tw/TimothyChi/blog?n=convew&i=389371
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,