问题标签 [virtualmode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
550 浏览

vb.net - 如何使用 FindItemWithText?

下面是我正在使用的代码。我的帐户存储在 Dictionary(Of String, Integer) 中,以便我可以轻松地将值与它们关联。我的列表视图在我将其转换为虚拟模式后运行良好,但我失去了搜索功能,只需输入我想要返回的列表视图即可。没有它,除非我可以按名称搜索,否则整个功能实际上毫无用处。我已经搜索并实现了多个示例,但我无法得到任何工作。我究竟做错了什么?它应该怎么看?

这填充了我的列表视图。

这是来自 MSDN。据说是搜索所必需的,我能找到的唯一例子..

这也来自 MSDN。无论我搜索什么,它都会不断返回 null。

0 投票
1 回答
2480 浏览

listview - listviewitem在虚拟模式下如何设置top item属性?

我正在尝试设置 listview 的 topitem 属性,但是在虚拟模式下,项目被禁用。所以任何试图在虚拟模式下访问它的代码都会抛出一个无效操作异常。当我尝试逐行调试时不会发生异常。如果我评论该行TopItem=Items[value-1],它不会引发任何异常。

System.InvalidOperationException:在 VirtualMode 中,ListView RetrieveVirtualListItem 事件需要每个 ListView 列的列表视图 SubItem。在 System.Windows.Forms.ListView.WmReflectNotify(Message& m) 在 System.Windows.Forms.ListView.WndProc(Message& m) 在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam ) 请建议。

0 投票
1 回答
189 浏览

c# - WinForms.DataGridView VirtualMode 折叠行

我正在开发一个 WinForms 应用程序,它有一个 DataGridView,这个控件模拟一个 TreeView,所以 RowCount 发生了巨大的变化。折叠行时出现性能问题...

例子:

0 投票
1 回答
21 浏览

c# - 如何在使用 datagridview 虚拟模式时自定义分页的特定代码

我正在读取 xml 文件而不是数据库表并以这种方式进行分页

但问题是lowerPageBoundary值是我从MSDN链接获得的另一个类的控制器https://msdn.microsoft.com/en-us/library/ms171624.aspx?f=255&MSPPError=-2147217396

我正在遵循MSDN提供的相同代码,但我的分页例程与以下代码不兼容,也无法正常工作。

第一次lowerPageBoundary是 0,所以 skip 有 0 作为值,take 有 16 作为值,当同一行执行第二次lowerPageBoundary是 16-16=0

所以我的请求是有人请查看我在此处提供的 MSDN 链接并查看控制值的缓存类,lowerPageBoundary并建议我如何自定义 LINQ 跳过并针对 MSDN 代码场景进行处理。

谢谢

0 投票
2 回答
625 浏览

c# - 在 VirtualMode 中搜索 ListViewItem

使用 VirtualMode 时,我在 ListView 中进行搜索时遇到了一些麻烦。ListView 填充只是使用 RetrieveVirtualItem 事件查找。

我的表单上有一个文本框和“搜索”按钮。

我已经处理了 SearchForVirtualItem 事件,该事件在我的集合中查找文本并将索引设置为事件 args 的 Index 属性。

e.Index 的值确实设置为预期值,但在我的 ListView 中没有任何反应。

0 投票
1 回答
394 浏览

c# - 为什么在 RetrieveItem 之前没有调用 ListView.CacheVirtualItems?

我有一个带有 ListView 的表单(.NET 4.5 VS.2015),它可能包含几百甚至一千多行。实验已经表明,表单会陷入僵局且无响应,因为它在任何给定时间仅显示大约 20 个时尝试加载所有 ListViewItems。

因此,我使用简单的缓存在 ListView 上实现了虚拟模式。我已经为 RetrieveItems 和 CacheVirtualItems 事件设置了 VirtualListSize、启用了虚拟模式并连接了事件处理程序。

现在,根据文档,您相信 CacheVirtualItems 将在 RetrieveItems 之前被调用,以允许您的缓存填充 ListView 打算查看的项目范围。

但就我所见,CacheVirtualItems 在第一个 RetrieveItems 之前从未被调用过!您希望它被调用,以便您可以创建缓存并预填充它(至少设置容量),然后在缓存未命中时适当地填充。

我不是很好理解吗?如果没有首先调用 CacheVirtualItems 让您的应用程序为请求做准备,那么有什么意义呢?

0 投票
0 回答
298 浏览

c# - 在虚拟模式下获取 ListView 中的选中项

如何遍历在虚拟模式下运行的ListView控件中的所有选中项

我正在使用CacheVirtualItemsRetrieveVirtualItem事件处理程序并实现了基本的缓存处理。

文档说在虚拟模式下 CheckedItems 和 SelectedItems 会抛出异常,因为没有使用 Items 集合。对于我一直在阅读的内容,应该依赖虚拟模式下的CheckedIndicesSelectedIndices但该语句似乎不正确,因为尝试在虚拟模式下使用它们会产生Invalid Operation Exception

那么,我该如何处理已检查的项目?我控件中的每个 ListViewItem 都有一个复选框,可能会或可能不会被选中。

0 投票
1 回答
381 浏览

c# - 显示大型数据表

免责声明:我的职业生涯一直是嵌入式软件,而我最近才涉足桌面应用程序。我正在开发的应用程序有一个模拟,它产生一个稀疏的二维矩阵,可以是 3000x3000 个元素的数量级。稀疏矩阵对象来自我们在内部创建的一个类。我需要以扩展形式向用户显示这个稀疏矩阵。

我最初将其扩展为 DataTable 并将其绑定到 DataGridView,但在列 FillWeights 的总和超过限制时遇到了障碍。即使克服了这一点,在表格中显示任何内容之前也需要几分钟的处理时间。

我遇到了 DataGridView 的虚拟模式。虚拟模式似乎非常适合我所拥有的,但仍然存在几个问题:

  1. 似乎没有办法向 DataGridView 传达最大行数和/或列数(用于缩放滚动条)。如果我设置 .RowCount 和/或 .ColumnCount,应用程序会挂起 2 分钟以创建列。
  2. 我在虚拟模式下失去了列排序。在 MSDN 文档中似乎有一些方法可以做到这一点,但这并不明显。

这让我相信 GUI 世界中的数据不应该在笨重的大表(特别是数千列)中查看,特别是考虑到我们已经以稀疏矩阵形式获得它。我想我需要推迟这个要求。

在我的情况下你会怎么做?

0 投票
1 回答
629 浏览

c# - 使用实体框架即时加载 (DataGridView)

大家好,

我正在尝试实现及时加载到虚拟模式 DataGridView(Winforms)中,但要么我错过了一大块拼图,要么它不起作用....

我的桌子大约有。150k 条记录,加载大约需要 2 分钟,这是不可接受的。

下面的代码摘录

现在我的理解是 CellValueNeeded 仅从数据库中提取 DataGridView 可以显示的信息,因此一次 30 行将加载时间减少到可以忽略不计的持续时间

谁能解释为什么它没有按预期工作?

0 投票
2 回答
532 浏览

.net - 如果在虚拟模式下使用 DataGridView 可以提高性能

在虚拟模式下在 DataGridView 上设置 RowCount 真的很慢。

在虚拟模式下使用数据网格视图时,您必须手动指定 RowCount。这有时真的很慢,尤其是在处理大量数据时。如果您需要减少行数(在我的情况下,设置行数需要超过 20 秒),性能将会非常缓慢。