首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

DataGridView 不刷新怎么处理

2013-08-09 
DataGridView 不刷新怎么办?winform DataGridView控件绑定数据源进行显示,后通过对话框对数据进行修改,修

DataGridView 不刷新怎么办?
winform DataGridView控件绑定数据源进行显示,后通过对话框对数据进行修改,修改完成后数据不显示,只有手动最小化窗口或用其他窗口遮盖DataGridView后显示,试了很多方法都没行通,.NET的强制刷新也不管用,难道要调用windows API 来强制刷新吗? 代码如下:

,看代码中那个Count++:
private void txtCode_KeyPress(object sender, KeyPressEventArgs e)
        {
            if(e.KeyChar != '\r')
            {
                return;
            }

            string code = txtCode.Text.Trim();

            if (code == string.Empty)
            {
                return;


            }

            SaleEntity s;
            s = _saleEntities.FirstOrDefault(n => n.CommodityID == code);

            //同样商品多件销售,只需增加数量
            if (s != null)
            {
                s.Count++;
                txtCode.Text = "";
            }
            else
            {
                s = GetCommodity(code);
                s.Salesman = 1;
                s.Date = dtpDate.Value.ToString("yyyy-MM-dd");

                if (s != null)
                {
                    _saleEntities.Add(s);
                }

                txtCode.Text = "";
            }



            this.BindingContext[dvSales.DataSource].SuspendBinding();
            this.dvSales.DataSource = null;
            dvSales.AutoGenerateColumns = false;
            this.dvSales.DataSource = _saleEntities;
            this.BindingContext[dvSales.DataSource].ResumeBinding();

            txtCountPrice.Text = _saleEntities.Sum(n => n.CountPrice).ToString();


            e.Handled = true;
        }

DataGridView
[解决办法]
dvSales.Refresh();
[解决办法]
重新绑定this.dvSales.DataSource 
[解决办法]
手动绑定会不会,三角形那里有个数据库绑定,不需要自己写代码的,选择了自动生成代码。。。
[解决办法]
数据源对象要实现System.ComponentModel.INotifyPropertyChanged接口,并且在属性值改变后引发INotifyPropertyChanged.PropetyChanged事件,这样DGV就可以自动更新显示的内容了。

热点排行