DataGridView解决使用BindingList时属性改变界面不更新问题

2023-05-16

 

 

目录

 

 问题

解决方法一

解决方法二



 问题

在使用BindingList作为DataGridView的数据源时,当BindingList<>有增加或者删除的时候DataGridView会自动刷新,但是当BindingList<>中属性内容进行更新的时候界面并不会刷新

解决方法一

使用

this.dataGridView.Invalidate();

强制刷新。

解决方法二

使用BindingList绑定时,数据确实双向同步改变,但刷新并不会实时更新,是因为实体类没有实现INotifyPropertyChanged接口,实现相关接口即可。

dataGridView中没有及时刷新显示新数据。因为数据修改时并没有通知到控件,为此实现INotifyPropertyChanged接口,该接口只包含一个事件,当属性值改变时,触发该事件,从而导致注册该事件的方法被执行,达到通知控件的目的。这是通过事件实现观察者模式。

关键代码在VO实体对象时,当改变值时,抛出PropertyChanged事件

class ProcedureNameVo : INotifyPropertyChanged
        {
            /// <summary>
            /// 存储过程名
            /// </summary>
            public string procedureName { get; set; } = "存储过程名(英文)";

            public bool _isExist = false;
            /// <summary>
            /// 存储过程是否存储
            /// </summary>
            public bool isExist {
                get
                {
                    return _isExist;
                }

                set {
                    if (_isExist != value)
                {
                        _isExist = value;
                    PropertyChanged(this, new PropertyChangedEventArgs("isExist"));
                }
                }
            }
            public event PropertyChangedEventHandler PropertyChanged = delegate { };
        }

 比如上面代码当改变isExist时,界面会实时刷新,当改变procedureName值时不会刷新,是因为改变isExist值时,抛出的事件。

 

总结

方法一相对简单,每次手动刷新界面,每次调用是全局刷新

方法二稍微复杂点,要重构vo对象,可以定点更新

对表格数据量小的使用方法一。精细化的使用方法二。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DataGridView解决使用BindingList时属性改变界面不更新问题 的相关文章

  • 使用 Datagridview C# 进行多线程处理

    这里我正在做一个检查用户名的过程 我创建了一个 datagridview 并从文本文件加载了数据 因此 datagridview 在前两列中包含用户的名字和姓氏 我需要做的是逐行读取这些值 并发现第一个和最后一个没有相同的名称 这些操作是在
  • DataGridView:仅当滚动到底部时自动向下滚动

    我有一个程序 它使用 dataGridView 来显示通过向 dataGridView 添加行来每秒自动更新的数据 当我想在开头阅读一些内容时 我会向上滚动 即使数据更新 滚动条也不会向下滚动 这很好 但我希望滚动条仅在位于 dataGri
  • DatagridView 如何让每列有不同的行数?

    所以我试图以特定格式显示我的数据datagridview 所以我的格式是这样的 A B C 1 1 1 2 2 x 3 x x x 表示没有单元格 正如您所看到的 每列都有不同的行数 我想在 DatagridView 或 Dot Net F
  • 如何验证 DataGridView 输入?

    我有一些严重的问题数据网格视图输入验证 我正在使用实体框架开发一个项目 并且我已经绑定了数据网格视图元素到数据库 如果用户将一些数据插入到不可为空的列中 然后清除数据以使该列留空 然后单击另一个数据网格视图单元格时 发生异常并且出现运行时错
  • .Net:DataGridView 响应 IBinding.ListChanged 但不响应 CellValueChanged 事件处理程序

    我有一个自定义 IBinding 列表 它会引发 ListChanged 事件 我想在 ListChanged 事件之后重新着色 Datagridview 行 Datagridview 响应 ListChanged 事件并更改单元格值 但从
  • 时序问题 - DGV 在流程修改数据之前刷新

    我在表单上有一个按钮 用于启动一个进程 在 x 不同 秒后 更改数据库表 Y 中的一些数据 调用 InitializeGridView 然后刷新显示前面提到的表 Y 的 DGV 问题是InitializeGridView 在进程之前完成 因
  • BindingList.Sort() 的行为类似于 List.Sort()

    我正在尝试编写一个可用于我的应用程序的 SortableBindingList 我发现了很多关于如何实现基本排序支持的讨论 以便 BindingList 在 DataGridView 或其他一些绑定控件的上下文中使用时进行排序 包括来自 S
  • Winforms DataGridView 中的超链接单元格

    我有一个包含以下数据的 datagridview ContactType Contact Phone 894356458 Email email protected cdn cgi l email protection 在这里 我需要显示数
  • 如何删除选定的 DataGridViewRow 并更新连接的数据库表?

    我有一个DataGridViewWindows 窗体应用程序上的控件 用 C 编写 我需要的是 当用户选择 DataGridViewRow 然后单击 删除 按钮时 应删除该行and接下来 需要使用表适配器更新数据库 这是我到目前为止所拥有的
  • 在Datagridview中显示子对象的属性

    如何在 datagridview 中显示对象的选定属性以及第一个对象的成员对象的选定属性 我认为我不会要求绑定 而是依赖硬编码更新 因为更新将在非 UI 线程上启动 而且我认为绑定不会那么容易 至少我在其他项目中遇到过问题 基本上我想了解有
  • 从 Datagridview 更新 MS Access 数据库

    我正在尝试从 datagridview 更新 MS Access 数据库 单击按钮即可填充 datagridview 并在修改任何单元格时更新数据库 我一直在使用的代码示例在表单加载时填充并使用 cellendit 事件 private O
  • C# Winforms DataGridView 具有像 Excel 一样的排序/过滤功能

    您好 我需要一个快速解决方案来使用 Winforms DataGridView 控件进行过滤 排序 就像在 Excel 中一样 我已经查看了该领域的现有帖子 但似乎没有一个能够满足我的需求 我正在手动填充我的 DataGridView 没有
  • 条件 DataGridView 格式设置

    我有一个 DataGridView 我将其 DataSource 属性设置为我自己的对象的 BindingList BindingList
  • DataGridView 自动添加新行 - 为什么?

    您好 我有一个使用 Windows 窗体的旧 C 应用程序 编写得非常糟糕 我最近不得不对应用程序进行一些广泛的更改 现在我面临着相当奇怪的问题 该应用程序最初设计为在主窗口 OnLoad 方法中加载数据 我知道这是一个糟糕的想法 后来重构
  • DataGridView 的替代品有哪些? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我们希望在 Winforms 应用程序中替换 DataGridView 我们应该评估哪些替代方案 商业或
  • 是否可以防止 DataGridView 中出现多行 HeaderText?

    当长度为HeaderText属性达到一定的字符限制并且文本中有空格 WinForms 会自动在标题中插入链接中断 我想要的是 Measurement Value 我得到什么 Measurement Value 有足够的空间来显示所有标题单元
  • 使用数据源时无法更改 datagridview 单元格颜色

    我有一个有趣的问题 我正在尝试使用数据表作为 datagridview 的数据源 我想对表格的某些单元格进行着色以指示各种事物 但由于某种原因 颜色不会显示 所以下面的代码显示了一个未着色的单元格 dataGridView1 DataSou
  • 为什么 Dictionary 上的这个 Linq 查询不作为数据源工作

    我在VB中有以下内容 Dim sources From source In importSources Select New With Type source Key Source source Value Name dgridSource
  • 填充 datagridview

    我正在开发一个表单 它将在所有连接的驱动器中搜索 PST 文件 我可以使用以下命令让它工作 Get PSDrive PSProvider filesystem get childitem root include pst r select
  • 如何在输入错误的情况下回滚 gridview 中的更改

    我有一个绑定到对象列表的 DataGridView 它有一些用户可以编辑的列 某些输入对于整个行来说是不允许的 如果用户在某些单元格中输入无效输入 我该如何回滚 我尝试使用 RowValidating 事件处理程序 但在更改单元格值后未调用

随机推荐

  • linux+python自动备份数据库

    linux 43 python自动备份数据库 1 在linux上安装mysqldump xff1a yum y install holland mysqldump noarch 2 编写python脚本 xff1a usr bin pyth
  • python基于Tkinter实现学生信息管理系统

    一 功能点介绍 xff08 毕设设计 xff09 1 添加学生成绩 xff1a 管理员可以在系统中添加学生的成绩信息 xff0c 包括学生姓名 学号 课程名称 成绩等 2 删除学生成绩 xff1a 管理员可以根据学生的学号或者姓名删除学生的
  • 感想京东

    xfeff xfeff 现在网上购物已经是家常便饭 xff0c 大多数人们都已接受了网购这种方式 xff0c 而能够给人们提供网购的网站也很多 xff0c 而我从好几年前就开始在京东网购物了 xff0c 因此京东商城的每一次发展 xff0c
  • 2014年度总结

    时光转眼即逝 xff0c 从还是懵懵懂懂的孩子一下子变成了已步入社会的工作者 回首2014年 xff0c 有欢乐 xff0c 有泪水 xff0c 有付出 xff0c 有收获等等 xff01 想起2014的自己还是一个刚步入工作岗位才半年 x
  • 将tensorflow训练好的模型移植到android

    将tensorflow训练好的模型移植到android上 说明 本文将描述如何将一个训练好的模型植入到android设备上 xff0c 并且在android设备上输入待处理数据 xff0c 通过模型 xff0c 获取输出数据 通过一个例子
  • FreeRTOS 启动第一个线程的步骤

    FreeRTOS 启动第一个线程的步骤 从main函数开始 初始化完成之后 通过SVC指令的中断函数来 初始化成需要的寄存器值 才能正常运行线程 1 启动第一个线程函数prvStartFirstTask 调用prvStartFirstTas
  • C#委托与事件的本质区别

    C 委托与事件的本质区别 从定义上说 xff0c 委托被编译器编译成一个类 xff0c 所以它可以像类一样在任何地方定义 xff0c 而事件被编译成一个委托类型的私有字段和两个公有add 和 remove 方法 xff08 有点类似于属性的
  • 文章千古事、得失寸心知

    文章千古事 得失寸心知 这些年 xff0c 读过的技术经典图书 成晓旭 xff1a 欢迎转载 行千里路 读万卷书 xff1b 历数十项目 编百万代码 十来年风雨IT路 xff0c 上百本沉寂专业书 佛说 xff1a 一花一世界 一叶一菩提
  • PX4+QGC+jmavsim软件在环仿真

    一 环境修改 参考官方手册jMAVSim 仿真模拟 PX4 Developer Guide xff0c 以上环境基于上一篇内容 xff0c 未完成ROS 43 jmavsim 43 QGC环境搭建的请移步Ubuntu18 04下px4 43
  • Delphi之东进模拟语音卡(D160A)可复用源码

    Delphi之东进模拟语音卡 D160A 可复用源码 作者 xff1a 成晓旭 Blog xff1a http blog csdn net cxxsoft 声明 xff1a 欢迎转载 xff0c 请保证文章的完整性 设计简介 xff1a 1
  • 《上海滩》命运的真实

    上海滩 命运的真实 小时候 xff0c 家里没电视 xff0c 像80年周润华版 上海滩 这样的经典 xff0c 通常也会很难一集不漏地看全 当然 xff0c 那个时候也看不懂那个冯程程的漂亮 许文强的帅气 xff0c 更看不懂冯敬尧的强横
  • 中国房价不可能下降的19个理由

    中国房价不可能下降的19 个理由 2014 年01月26日 根据 腾讯房产 资料整理 在 腾讯房产 频道看到的 xff0c 所谓专家解释说的房价不可能下降有N 个无以辩驳理由 虽然少数内容缺乏数据依据 xff0c 但总体来看 xff0c 分
  • 如果生命就是一次马航之旅

    岁月长河中 xff0c 生命只不过是一粒尘埃 xff0c 渺小而短暂 xff1a 正如一场马航之旅 xff0c 从起点到终点 xff0c 正常飞行6小时后一定能抵达目的地 xff1b 当波音777平稳抵达目的地后 xff0c 无论你多么留念
  • 秀一段《易语言》的源代码

    公开 类 启动类 lt gt 公开 静态 启动 猜数字 猜 61 创建 猜数字 猜 猜 类 猜数字 整数 内定数字 61 66 TODO 随机选择一个数 公开 猜 循环 猜数字 61 61 假 逻辑 猜数字 控制台 输出行 34 请猜1 1
  • 腾讯QQ音乐业务产品规划

    腾讯QQ音乐业务产品规划
  • 谁是你生命中的贵人

    谁是你生命中的贵人 谨以此文献给我一生至爱 作者 xff1a 成晓旭 版权保留 转载请保持文章完整性 最近很奇怪的发现 xff0c 生命中的人和事 xff0c 常常不是均匀而规律地分布在人生的时间轴上 xff0c 或许很长时间都平淡无奇 x
  • 服务器处理能力,你估算正确过吗?

    服务器处理能力 xff0c 你估算正确过吗 xff1f 作者 xff1a 成晓旭 1 引题 但凡写过技术方案的都知道 xff0c 在技术方案最终落实到工程实施部署时 xff0c 必须编制出当前解决方案需要部署的IT设备及环境 xff0c 包
  • 电信运营商云计算体系架构分析

    电信运营商云计算体系架构分析 作者 xff1a 成晓旭 xff08 版权保留 欢迎转载 xff09 第三篇 xff1a 体系架构分析 电信运营商云计算发展分析之一 xff1a 战略定位分析 xff0c 可供参考 电信运营商云计算发展分析之二
  • 企业ERP系统开发总结及建议

    企业ERP系统开发总结及建议 作者 xff1a 成晓旭 对于像我们这种规模的大型公司 xff0c 自己建设 实施和维护满足公司特定管理要求的管理信息系统 xff0c 是目前部分大型公司建设企业ERP 的常见思路 比如 xff1a XXXX
  • DataGridView解决使用BindingList时属性改变界面不更新问题

    目录 问题 解决方法一 解决方法二 问题 在使用BindingList作为DataGridView的数据源时 xff0c 当BindingList lt gt 有增加或者删除的时候DataGridView会自动刷新 xff0c 但是当Bin