为数据绑定的 datagridview 实现虚拟模式

2023-11-20

关于实施建议的一般性问题。

我有一个绑定到的集合datagridview.

BindingList<Line> allLines = new BindingList<Line>();
dataGridView1.DataSource = allLines;

我想实施virtual mode因为该集合可能包含数百万个条目(Line对象),所以我认为仅“缓存”或一次显示一些需要的条目可能会更快。我理解虚拟模式的用途是什么?

我看过:http://msdn.microsoft.com/en-us/library/2b177d6d.aspx

但我无法让它工作datagridview那是databound.

我无法指定行数:

this.dataGridView1.RowCount = 20;
`RowCount property cannot be set on a data-bound DataGridView control.`

编辑:此链接表明我可能必须完全删除绑定。是这样吗?http://msdn.microsoft.com/en-us/library/ms171622.aspx

“如果绑定模式不能满足您的性能需求,您可以通过虚拟模式事件处理程序管理自定义缓存中的所有数据。”


如果你想使用DataGridView.VirtualMode,那么您不应该使用绑定数据集。他们是对立的。所以,你没有设置DataSource,但只需设置RowCount属性并提供事件处理程序DataGridView.CellValueNeeded 事件.

除此之外你还需要设置dataGridView.VirtualMode财产给true首先,可能是写在设计器中。默认情况下它设置为false,这就是为什么你会得到一个异常,说你不能设置RowCount.

可能您必须手动初始化网格的列。

在刷新网格时(例如,单击按钮),您必须

dataGridView.RowCount = 0;
\\refresh your cache, where you store rows for the grid
\\...
dataGridView.RowCount = yourCache.Count;//or some other property, getting the number of cached rows.

The CellValueNeeded将为每行的每一列触发事件,具体取决于 RowCount 和列数。您应该设置e.Value事件处理程序中已处理单元格的值取决于e.RowIndex and e.ColumnIndex.

因此,要使其发挥作用,您至少需要处理CellValueNeeded。如果您的 DataGridView 是只读的,则不需要其他事件。

更完整和连续的概述可在Windows 窗体 DataGridView 控件中的虚拟模式.

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

为数据绑定的 datagridview 实现虚拟模式 的相关文章

  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • 按成员序列化

    我已经实现了template
  • 在结构中使用 typedef 枚举并避免类型混合警告

    我正在使用 C99 我的编译器是 IAR Embedded workbench 但我认为这个问题对于其他一些编译器也有效 我有一个 typedef 枚举 其中包含一些项目 并且我向该新类型的结构添加了一个元素 typedef enum fo
  • .NET 中是否有内置函数可以对密码进行哈希处理?

    我看到这个问题加密 散列数据库中的纯文本密码 https stackoverflow com questions 287517 encrypting hashing plain text passwords in database 我知道我
  • 从Web API同步调用外部api

    我需要从我的 Web API 2 控制器调用外部 api 类似于此处的要求 使用 HttpClient 从 Web API 操作调用外部 HTTP 服务 https stackoverflow com questions 13222998
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • C# 中通过 Process.Kill() 终止的进程的退出代码

    如果在我的 C 应用程序中 我正在创建一个可以正常终止或开始行为异常的子进程 在这种情况下 我通过调用 Process Kill 来终止它 但是 我想知道该进程是否已退出通常情况下 我知道我可以获得终止进程的错误代码 但是正常的退出代码是什
  • 重载<<的返回值

    include
  • 如何设计以 char* 指针作为类成员变量的类?

    首先我想介绍一下我的情况 我写了一些类 将 char 指针作为私有类成员 而且这个项目有 GUI 所以当单击按钮时 某些函数可能会执行多次 这些类是设计的单班在项目中 但是其中的某些函数可以执行多次 然后我发现我的项目存在内存泄漏 所以我想
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • IEnumreable 动态和 lambda

    我想在 a 上使用 lambda 表达式IEnumerable
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK

随机推荐

  • JSON 对象与 json.dump 之间的逗号分隔符

    我正在摆弄输出一个 json 文件 其中包含目录中文件的一些属性 我的问题是 当附加到文件时 每个对象之间没有分隔符 我可以在每个 f 后面添加一个逗号并删除最后一个 但这对我来说似乎是一个草率的工作 import os import os
  • 不使用 GetMethods 获取通用方法

    我想获取方法System Linq Queryable OrderyBy
  • 如何使用 NHibernate 和 Spring 为死锁配置 RetryAdvice 和 ExceptionTranslation

    我正在使用 Spring net 1 2 和 NHibernate 2 0 1 在我的项目中 我面临一些死锁问题 除了调整数据库以尽量减少死锁发生之外 我还想实现 Springs RetryAdvice 来处理这个问题 我找不到任何如何配置
  • 强制 Makefile 中先决条件的顺序

    我有一个第三方 makefile 并且我希望在首先构建另一个自定义目标 T2 之前不要构建其中一个目标 T1 通常 这可以通过使 T2 作为 T1 的先决条件来实现 但是 T1 在其规则之一中使用 因此 通过添加先决条件 我最终破坏了构建
  • 从导航堆栈中删除页面

    我有这个应用程序架构 List Page gt Detail Page gt ShareOnFacebook Page 用户选择一个Item in the List Page 用户可以点击也可以不点击Share按钮 如果他或她这样做 应用程
  • 在 Safari 中的 iframe 中设置第三方 cookie 的技术仍然有效吗?

    我正在尝试找到一种在 Safari 中的 iframe 中设置 cookie 的方法 Safari 有一项政策 不允许 iframe 设置 cookie 除非用户单击 iframe 中的某些内容 我已阅读 Stackoverflow 和其他
  • 区分 celery、kombu、PyAMQP 和 RabbitMQ/ironMQ

    我想将图像上传到 S3 服务器 但在上传之前我想生成 3 种不同大小的缩略图 并且我希望它在请求 响应周期之外完成 因此我使用 celery 我已阅读文档 这是我的理解 如果我错了 请纠正我 Celery 帮助您在请求响应周期之外管理任务队
  • 为什么调整大小后的 PNG 图像比原始图像大很多?

    我很困惑为什么使用 GD 库调整大小的 PNG 图像比原始图像大得多 这是我用来调整图像大小的代码 create image from posted file src imagecreatefrompng file tmp name get
  • 仅主键和主键约束有什么区别?

    我对 SQL 很陌生 如果我的问题很愚蠢 请原谅我的无知 仅主键和主键约束有什么区别 之间的区别This CREATE TABLE CUSTOMERS ID INT NOT NULL PRIMARY KEY ID NAME and This
  • 在grails中上传文件

    我正在尝试在我的 gsp 中上传 grails 中的文件
  • 使用 std::unique_ptr 具有私有析构函数的单例

    我已经根据该文档在程序中创建了所有单例 http erdani com publications DDJ Jul Aug 2004 revised pdf 如果有人想知道为什么单例 它们都是工厂 其中一些存储一些关于如何创建实例的全局设置
  • 低于低级别常见的 bsd 套接字

    如何在 C 中进行低级套接字 例如 实际发送 SYN 您真正想要的是原始套接字 您可以使用原始套接字接口完全控制标头和标志 但对它们进行编程更具挑战性 这是一个很好的入门教程 http www cs binghamton edu stefl
  • 如何在 Flutter 中将文本浮动在图像周围?

    我怎样才能在 Flutter 中实现这种布局 我发布了包drop cap text要实现 DropCapText 您还可以放置一个image作为 DropCap 内的自定义小部件
  • 如何指定百分比形式的保证金?

    我刚刚开始使用WPF 从那时起我就开始关注造型系统 我有 CSS 背景 我想以百分比形式设置边距 当前值以像素为单位设置 但我想将其设置为 即 50 我怎样才能实现这个目标 以下是在 WPF 中实现 20 左右边距的方法
  • PostgreSQL:使用聚合函数更新

    我想更新表格paneldata设置列ibase使用聚合函数 UPDATE paneldata p SET ibase SUM 1 i dist FROM ibaselang i WHERE p gid i gid AND i instp
  • 如何从 OpenShift 进行 mongodump 并在 MongoDB 2.4.9 上本地存储 mongorestore?

    我只是自己这样做 因为 RockMongo 导出和导入已损坏 所以只是在这里发布 请注意 这是针对 MongoDB 版本 2 4 9 以及相应版本的mongodump and mongorestore 首先阅读与您的版本相关的文档 备份 确
  • 不等于<>查询排除NULL值

    我遇到了一些我无法弄清楚的 SQL 查询问题 SELECT FROM MasterList WHERE Requested lt gt Yes 如果我在表上运行上述查询 我 会返回 60 条记录 但是应该有接近 300 条 我认为问题是 某
  • Scala Predef 取消导入[重复]

    这个问题在这里已经有答案了 可能的重复 如何在 Scala 中取消导入字符串 运算符 因此 Predef 中的内容会自动导入到 scala 程序中 但是如何禁用或取消从 Predef 导入某些或所有导入的函数呢 举个例子 如果我不喜欢字符串
  • Scipy.optimize.minimize method='SLSQP' 忽略约束

    我正在使用 SciPy 进行优化 而 SLSQP 方法似乎忽略了我的限制 具体来说 我希望 x 3 和 x 4 在 0 1 范围内 我收到消息 不平等约束不兼容 以下是执行结果和示例代码 使用虚拟函数 status 4 success Fa
  • 为数据绑定的 datagridview 实现虚拟模式

    关于实施建议的一般性问题 我有一个绑定到的集合datagridview BindingList