首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

绑定到BindingList的DataGridView在值更改时不会刷新

绑定到BindingList的DataGridView在值更改时不会刷新的问题,可能是由于数据绑定的设置不正确或者数据更新的通知机制不完整导致的。以下是一些可能的解决方案:

  1. 确保BindingList已实现INotifyPropertyChanged接口。这个接口可以通过实现PropertyChanged事件来通知数据更新。
  2. 确保BindingList的RaiseListChangedEvents属性设置为true。这个属性可以确保在数据更改时触发ListChanged事件。
  3. 确保DataGridView的DataSourceUpdateMode属性设置为OnPropertyChanged。这个属性可以确保在数据更改时立即更新DataGridView。
  4. 如果以上方法仍然无法解决问题,可以尝试手动调用DataGridView的Refresh()方法来强制刷新DataGridView。

以下是一个简单的示例代码,展示了如何将INotifyPropertyChanged接口应用于BindingList:

代码语言:csharp
复制
public class MyData : INotifyPropertyChanged
{
    private string _name;
    public string Name
    {
        get { return _name; }
        set
        {
            _name = value;
            OnPropertyChanged("Name");
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    protected virtual void OnPropertyChanged(string propertyName)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}

public class MyDataList : BindingList<MyData>
{
}

public class MyForm : Form
{
    private MyDataList _myDataList;
    private DataGridView _dataGridView;

    public MyForm()
    {
        _myDataList = new MyDataList();
        _dataGridView = new DataGridView();
        _dataGridView.DataSource = _myDataList;
        _dataGridView.DataSourceUpdateMode = DataSourceUpdateMode.OnPropertyChanged;
    }
}

在这个示例中,我们创建了一个名为MyData的类,它实现了INotifyPropertyChanged接口,并在Name属性的setter中调用了OnPropertyChanged()方法。我们还创建了一个名为MyDataList的类,它继承自BindingList<MyData>,这样我们就可以使用MyDataList作为DataGridView的数据源。最后,我们在MyForm类中创建了一个DataGridView,并将其DataSource设置为_myDataList,同时将DataSourceUpdateMode设置为OnPropertyChanged。这样,当数据更改时,DataGridView将立即刷新。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

通过 INotifyPropertyChanged 实现观察者模式

构造函数中先绑定   public Class_Name()    {        User user = new User();        user.Name = "your name";...PropertyChangedEventArgs("Address"));                }            }        }    } 按 Ctrl+C 复制代码    ObservableCollection   绑定集合...  数据绑定数据源对象可以是一个含有数据单一对象,也可以是一个对象集合。...之前,一直讨论如何将目标对象与一个单一对象绑定。Silverlight中数据绑定还能将目标对象与集合对象相绑定,这也是很常用。比如显示文章题目列表、显示一系列图片等。  ...如果要绑定一个集合类型数据源对象,绑定目标可以使用ItemsControl,如ListBox或DataGrid等。

2.7K10

DataGridView控件用法一:数据绑定

DataGridView控件,可以显示和编辑来自多种不同类型数据源表格数据。 将数据绑定DataGridView控件非常简单和直观,大多数情况下,只需设置DataSource属性即可。...绑定包含多个列表或表数据源时,只需将DataMember属性设置为指定要绑定列表或表字符串即可。...与基于文本值一起使用,绑定数字和字符串类型值时自动生成 DataGridViewCheckBoxColumn 与boolean和checkState值一起使用,绑定这些类型值时自动生成...DataGridViewImageColumn 用于显示图像,绑定字节数组、Image对象或Icon对象自动生成 DataGridViewButtonColumn 用于单元格中显示按钮,不会绑定时自动生成...,不会绑定时自动生成,通常需要进行手动绑定数据 二、绑定模式 就是将已经存在数据绑定DataGridView控件上。

3.9K20

WinForm企业级框架实战项目演练

一、课程介绍 我们都知道软件架构方式分为:C/S和B/S两类。这里阿笨不谈论两种软件架构优劣之分,因为它们各有千秋,用于不同场合。一位伟大讲师曾经说过一句话:事物存在即合理!...虽然当前主流架构开发的确大多是WEB端和App移动端开发,可能大家都忽略了传统WinForm桌面应用程序开发魅力!...阿笨将从自己实战项目经验角度出发,带领大家快速上手WinForm企业级应用程序开发从入门精通,实际感受一下C/S软件架构模式开发效率!...2.6、WinForm实战技能之玩转ComboBox控件 1)、如何优雅绑定下拉列表ComboBox数据源。...2.8、WinForm实战技能之玩转DataGridView列表控件 1)、如何优雅绑定 DataGridView数据源(BindingList)。

1.7K40

不使用反射,“一行代码”实现Web、WinForm窗体表单数据填充、收集、清除,和数据库CRUD

问题篇:     昨天CSDN看到这样一个帖子:“苦逼三层代码”: 采用传统三层架构写代码,每个数据表都要定义一个实体对象,编写后台时候, Web层需要针对页面的用户输入逐个手动编写赋值实体对象各个属性...添加前,工具箱中增加一个项:PDF.NET DataForm,然后资源管理器中选择Windows数据控件组件文件,将它“拖放”刚才建立 PDF.NET DataForm下面 ?    ...        我们这个小例子中,表单窗体(Form2)数据变化后(新增、修改),可以立即反应到主窗体(Form1)上,而不用主窗体去重新加载数据,这里就必须用到数据绑定集合: private BindingList... UserBindingList = new BindingList(); //填充集合代码,就是将数据从数据库查询出来,然后放到该集合中,代码略 this.dataGridView1...整个过程没有从数据库去重新刷新数据主窗口网格控件,实现了多个窗体之见数据同步。

2.7K80

期末作业C#实现学生宿舍管理系统

---- 添加用户 添加用户方法中添加代码(双击“添加用户添加代码”),即从账号、密码、宿舍号获取值,再通过语句进行插入数据库,具体操作方法:添加记录到本地后,添加进数据库, 本地假数据添加代码为...进行查询最后显示控件上去 这里接收到参数后演示图如下: 完整From5代码如下(注意上方代码举例需要全部写完才不会报错): public Form5(string value1)...、宿舍号、借出时间、是否归还,我们只需要通过user_id去user表中查询其他信息即可,所以borrow表中user_id需要和user表中id对应绑定(很多同学设计时会将多个重复信息放在同一个表中...这样切换过程中就不会感觉框变化 ③设计可视化窗体(根据自己需求自己来) 我们添加一个datagridview,然后对图中阴影部分右键【编辑列】 编辑列添加id、学生姓名、宿舍号...、借出时间、是否归还 设计好后如下图 5、绑定主页面实现跳转(从Form2) 实现图: ①首先打开Form2视图,双击【钥匙借阅登记】按钮 ②双击后本页面添加代码 在窗体部分输入

24430

C# 可视化程序设计机试知识点汇总,DBhelper类代码

类型数据 DataTable dt = DBHelper.getDataTable(sql1); //将返回结果绑定DataGridView控件数据源中 this.dataGridView1.DataSource...= dt; 数据中查出数据绑定DataGridView控件中(Load事件,查询,给下拉框赋值) //定义SQL语句 string sql1 = "select * from RoomType";..." //将返回结果绑定DataGridView控件中 this.comboBox1.DataSource = dt; 根据条件查询并重新绑定DataGridView控件中(点击查询按钮,模糊查询)...DataTable dt = DBHelper.getDataTable(sql); //将返回结果绑定DataGridView控件中 this.dataGridView1.DataSource =...dt = DBHelper.getDataTable(sql); //将返回结果绑定DataGridView控件中 this.dataGridView1.DataSource = dt; 选中DataGridView

7.7K20

可视化数据库设计软件有哪些_数据库可视化编程

1) BindingSource控件 1.BindingSource控件作用 用于简化将控件绑定基础数据源过程,可以看作是窗体上控件数据一个间接层。...5)DataSource:获取或设置连接器绑定数据源,可以是数组、列表、数据集、数据表等。 6)DataMember:设置用于筛选查看哪些数据表表达式。...1.DataGridView数据绑定 设置 DataSource 属性可以将数据绑定DataGridView 控件。...3)数据 DataPropertyName:绑定数据表字段名。 4)外观 DefaultCellStyle:设置字段,默认单元格样式。...控件绑定BindingSource控件,为BindingNavigator控件添加“加载”“保存”和“取消”按钮,实现加载、保存记录和取消操作功能。

6.7K40

C#实现WinForm DataGridView控件支持叠加数据绑定

我们都知道WinForm DataGridView控件支持数据绑定,使用方法很简单,只需将DataSource属性指定相应数据源即可,但需注意数据源必须支持IListSource类型,这里说是支持...说白了就是支持数据多次绑定,标准绑定方法只支持单一绑定,即每次绑定均会清除原来数据,而叠加数据绑定则可实现每次绑定均以附加形式(原数据保留)添加到DataGridView控件中,这样就实现了分页加载...,第二种比较简单,第一种执行效率上相对第二种方法要高,原因很简单,第一种每次处理数据永远都是每页数据,而第二种每次处理数据是原有数据与现有数据合集,随着数据量越多,加载也就越慢,大家也可以试一下...2.设置DataGridView列,将列DataPropertyName设置为需要绑定数据字段名称,这步很重要。...3.然后查询数据并调用扩展方法: //dataGridView2Demo为DataGridView2类型 //dataSource为查询数据 dataGridView2Demo.AppendData

1.9K30

【愚公系列】2023年11月 WPF控件专题 2023秋招WPF高频面试题

然而,出于绑定目的,也可能有另一种情况,并不想得到整个 Category 对象绑定列表绑定结果,而是该 Category 对象上单个属性值(例如它 ID 属性)。...通常,控件是为了它自己而呈现,并不反映底层数据。 例如,一个Button 不会绑定一个业务对象——它在那里纯粹是为了可以点击它。...不会保留绑定,因此如果修改了绑定源,则不会更新副本中值。35.ObservableCollection 和 BindingList 有什么区别?...从 WPF 角度来看,BindingList 没有得到正确支持,除非真的必须,否则您永远不会在 WPF 项目中真正使用它。36.冒泡事件和隧道事件之间的确切区别是什么?...更改通知 依赖属性具有内置更改通知机制。 通过属性元数据中注册回调,您会在属性值更改时收到通知。 这在数据绑定中会使用到。我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

46122

一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-演示ORM对象与DataGridView绑定技术-商品字典另一个实现

由于好多朋友都问我,你例子中大量使用ListView控件,很想知道是否可以支持DataGridView控件,所以我就有想到重新用DataGridView写一下“商品字典”模块。...今天本文主要内容是AgileEAS.NET平台中ORM对象与DataGridView绑定AgileEAS.NET平台ORM体系之中,有一个ITable接口,他继承了数据绑定接口IListSource...,并且ITableRows属性为EntityCollection对象本身就是一个List,那么通过ITable.Rows也是可以实现数据绑定。    ...本文例子中,我只演示商品字典数据绑定与修改,并且修改也使用了一个偷懒方法,不是最优实现,另外关于字典删除和增加我也没有实现,有兴趣朋友自己实现吧。    ...在这里,我们需要注意是需要向界面放一个dataGridView,并且设置一下他列,当然了大家也可以直接使用BindingSource绑定Product.DAL.Interface.IProduct

1.1K50

DataGridView控件中加入ComboBox下拉列表框实现

本文转载:http://www.cnblogs.com/luqingfei/archive/2007/03/28/691372.html 虽然Visual Studio中 DataGridView...控件DataGridViewComboBoxColumn可以实现下拉列表框,但这样列会在整列中都显示下拉列表框,不太美观,而且还要用代码实现数据绑定。...首先新建一个Windows应用程序,将主窗体重命名为MainForm,MainForm中加入一个DataGridView控件,命名为dgv_User。如下图所示: ?   ...打开窗体代码窗口,代码窗口中声明一个ComboBox控件 // 定义下拉列表框 private ComboBox cmb_Temp = new ComboBox();   我们要绑定下拉列表框功能是选择性别...= dtSex;     cmb_Temp.DropDownStyle = ComboBoxStyle.DropDownList; }   通常情况下我们都是从数据库中获取数据表(或者数据集),然后绑定

3.6K20

c# WinForm开发 DataGridView控件各种操作总结(单元格操作,属性设置)

当单元格 ToolTipText 变化时候也会引发该事件。可是,当DataGridViewDataSource被指定且VirualMode=True时候,该事件不会被引发。...补足: 假设 DataGridView DataSource 绑定是 DataView, 还能够通过设置 DataView.AllowAdd 属性为 False 来达到相同效果。...补足: 假设 DataGridView 绑定是 DataView 的话,通过 DataView.AllowDelete 也能够控制行删除。 ********行删除时条件推断处理。...」 按下时候,被选择单元格内容会复制系统剪切板内。...比起使用循环遍历,使用该事件来设定右键菜单效率更高。可是,DataGridView使用了DataSource绑定并且是VirtualMode时候,该事件将不被引发。

3.9K10
领券