提高 WPF DataGrid 性能

2023-12-20

In my .NET 3.5 WPF申请,我有一个WPF DataGrid其中将填充 500 列和 50 行。 应用程序的性能在滚动时非常非常差,或者当我滚动时DataGrid.Items.Refresh()或在选择行时。

实际上应用程序将需要大约 20 秒来更新布局。Layout_Updated()事件将在 20 秒后触发。

如果我将列数减少到 50 或更少,应用程序的响应速度将会非常快。根据我的发现,性能与列数直接相关。

我该如何改进DataGrid表现?


您可以打开一些选项来帮助您DataGrid object

EnableColumnVirtualization = true
EnableRowVirtualization = true

我认为这两个是可能有帮助的主要内容。接下来尝试使您的绑定异步

ItemsSource="{Binding MyStuff, IsAsync=True}"

最后,我听说设置最大高度和宽度可以有所帮助,即使它高于最大屏幕尺寸,但我自己没有注意到差异(声称与自动尺寸测量有关)

MaxWidth="2560"
MaxHeight="1600"

也从不放一个DataGrid in a ScrollViewer,因为你基本上会失去虚拟化。让我知道这是否有帮助!

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

提高 WPF DataGrid 性能 的相关文章

  • 如何在 .NET Framework 2.0 中模拟“Func<(Of <(TResult>)>) 委托”?

    我尝试使用这个类代码项目文章 http www codeproject com KB threads AsyncVar aspx在 VB NET 和 NET Framework 2 0 中 除了这一行之外 所有内容似乎都可以编译Privat
  • 如何将 protobuf-net 与不可变值类型一起使用?

    假设我有一个像这样的不可变值类型 Serializable DataContract public struct MyValueType ISerializable private readonly int x private readon
  • 确保 StreamReader 不会挂起等待数据

    下面的代码读取从 tcp 客户端流读取的所有内容 并且在下一次迭代中它将仅位于 Read 上 我假设正在等待数据 我如何确保它不会在没有任何内容可供读取时返回 我是否必须设置低超时 并在失败时响应异常 或者有更好的办法吗 TcpClient
  • 在 LINQ 中按 Id 连接多表和分组

    我想按categoryId显示列表产品的名称组 这是我的代码 我想要我的视图显示结果 Desktop PC HP Red PC Dell Yellow PC Asus Red SmartPhone Lumia 720 Blue 我的组模型
  • 在 C 中匹配二进制模式

    我目前正在开发一个 C 程序 需要解析一些定制的数据结构 幸运的是我知道它们是如何构造的 但是我不确定如何在 C 中实现我的解析器 每个结构的长度都是 32 位 并且每个结构都可以通过其二进制签名来识别 举个例子 有两个我感兴趣的特定结构
  • 使用 LINQ2SQL 在 ASP.NET MVC 中的各种模型存储库之间共享数据上下文

    我的应用程序中有 2 个存储库 每个存储库都有自己的数据上下文对象 最终结果是我尝试将从一个存储库检索到的对象附加到从另一个存储库检索到的对象 这会导致异常 Use 构造函数注入将 DataContext 注入每个存储库 public cl
  • 使用接口有什么好处?

    使用接口有什么用 我听说它用来代替多重继承 并且还可以用它来完成数据隐藏 还有其他优点吗 哪些地方使用了接口 程序员如何识别需要该接口 有什么区别explicit interface implementation and implicit
  • 由 IHttpClientFactory 注入时模拟 HttpClient 处理程序

    我创建了一个自定义库 它会自动为依赖于特定服务的 Polly 策略设置HttpClient 这是使用以下方法完成的IServiceCollection扩展方法和类型化客户端方法 一个简化的例子 public static IHttpClie
  • 在 Visual Studio 2010 中从 Fortran 调用 C++ 函数

    我想从 Fortran 调用 C 函数 为此 我在 Visual Studio 2010 中创建了一个 FORTRAN 项目 之后 我将一个 Cpp 项目添加到该 FORTRAN 项目中 当我要构建程序时出现以下错误 Error 1 unr
  • 在一个平台上,对于所有数据类型,所有数据指针的大小是否相同? [复制]

    这个问题在这里已经有答案了 Are char int long 甚至long long 大小相同 在给定平台上 不能保证它们的大小相同 尽管在我有使用经验的平台上它们通常是相同的 C 2011 在线草稿 http www open std
  • DbContext 和 ObjectContext 有什么区别

    From MSDN 表示工作单元和存储库模式的组合 使您能够查询数据库并将更改分组在一起 然后将这些更改作为一个单元写回存储 DbContext在概念上类似于ObjectContext 我虽然DbContext只处理与数据库的连接以及针对数
  • WPF - 关闭 App.g.cs 中 Main 的自动生成

    我正在学习WPF 我想在 App xaml cs 中提供我自己的 Main 方法 而不是在 App g cs 中为我生成一个方法 然而 我不断遇到冲突 因为我还没有找到如何阻止生成额外的 Main 我的项目文件或其他地方是否有控制此设置的设
  • 等待进程释放文件

    我如何等待文件空闲以便ss Save 可以用新的覆盖它吗 如果我紧密地运行两次 左右 我会得到一个generic GDI error
  • CMake 无法确定目标的链接器语言

    首先 我查看了this https stackoverflow com questions 11801186 cmake unable to determine linker language with c发帖并找不到解决我的问题的方法 我
  • AES 128 CBC 蒙特卡罗测试

    我正在 AES 128 CBC 上执行 MCT 如中所述http csrc nist gov groups STM cavp documents aes AESAVS pdf http csrc nist gov groups STM ca
  • “接口”类似于 boost::bind 的语义

    我希望能够将 Java 的接口语义与 C 结合起来 起初 我用过boost signal为给定事件回调显式注册的成员函数 这非常有效 但后来我发现一些函数回调池是相关的 因此将它们抽象出来并立即注册所有实例的相关回调是有意义的 但我了解到的
  • 如何设置 log4net 每天将我的文件记录到不同的文件夹中?

    我想将每天的所有日志保存在名为 YYYYMMdd 的文件夹中 log4net 应该根据系统日期时间处理创建新文件夹 我如何设置它 我想将一天中的所有日志保存到 n 个 1MB 的文件中 我不想重写旧文件 但想真正拥有一天中的所有日志 我该如
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • C++ 函数重载类似转换

    我收到一个错误 指出两个重载具有相似的转换 我尝试了太多的事情 但没有任何帮助 这是那段代码 CString GetInput int numberOfInput BOOL clearBuffer FALSE UINT timeout IN
  • 不同类型指针之间的减法[重复]

    这个问题在这里已经有答案了 我试图找到两个变量之间的内存距离 具体来说 我需要找到 char 数组和 int 之间的距离 char data 5 int a 0 printf p n p n data 5 a long int distan

随机推荐

  • 将全角标点字符替换为正常宽度的等效字符[重复]

    这个问题在这里已经有答案了 file1包含一些 s 这是全角 我想变成常规 s 这是我们常用的冒号 我如何在 bash 中执行此操作 也许是一个Python脚本 恕我直言 python不是适合这项工作的工具 perl is perl CSA
  • 如何在自动映射器中将字符串映射到日期?

    我有一个有效日期的字符串 但它是一个字符串并且它需要是一个字符串 但是 当我尝试将其自动映射到日期时间时 它会引发异常 Trying to map System String to System DateTime Trying to map
  • 谁提出了“DIANA 节点”这个术语?他们是如何计算出 6,000,000 LOC 大约是 67108864 (2**26) 个 DIANA 节点? [复制]

    这个问题在这里已经有答案了 在共享内存池中 有包规范 对象类型规范 独立子程序或匿名块限制为 67108864 2 26 DIANA 节点对应于标识符等令牌 关键字 运算符等 戴安娜代表什么 我知道完整的表格 但它到底是什么 我已经提到过戴
  • Docker 上的 Wordpress:无法在已安装的卷上创建目录

    这是 Wordpress Docker 容器中路径中的原始文件 var www html docker exec 5b957c7b9c5ad054883694afbfb80d3c9df6707458d55011f471be0701f3890
  • 获取 sscanf 读取的字符数?

    我正在解析一个字符串 achar 并且我正在使用sscanf将字符串中的数字解析为双精度数 如下所示 char expression double value 0 sscanf expression lf value 这很好用 但我想继续通
  • 使用RestKit,使用块加载对象,何时以及如何取消请求?

    RKObjectManager sharedManager loadObjectsAtResourcePath app site pattern usingBlock RKObjectLoader loader loader setObje
  • 类型 types.Transactions 没有字段或方法 GetRlp

    我正在尝试在 go ethereum 中创建原始交易 并发现了一些我正在修改的教程代码 错误是 transaction raw create go 65 18 ts GetRlp undefined type types Transacti
  • 如何在java fx中每2秒更新一次标签框?

    我正在尝试在应用程序 GUI 中模拟基本恒温器 我想每 2 秒更新一次标签框值与新的温度值 例如 我的初始温度将显示为 68 度 并每 2 秒更新为 69 度 70 度等 直到 75 度 这是我用Java fx写的一段代码 controlp
  • 自动确定图例的位置

    您可以在大多数绘图程序中手动定位关键图例 例如 在 gnuplot 中 它是使用set key top right 在ggplot2中 就完成了像这样 https stackoverflow com questions 2954005 ho
  • 我是否在 RHEL 上正确安装了 Ruby 1.9.3?

    在你说之前yum y install ruby193 我就是这么做的 请注意 我不是 Ruby 开发人员 但需要将此程序作为其他开发人员通过 Web 服务工作的一部分 他没空 任何帮助将不胜感激 我尝试按照说明安装库并得到 root ctb
  • JQuery 检测底部滚动

    我希望在用户滚动到页面底部时实现内容加载 我遇到问题了 它在桌面浏览器上运行良好 但在移动设备上则不然 我已经实施了一个肮脏的修复程序 使其可以在 iPhone 上运行 但并不是最佳的 因为它无法在其他尺寸的移动设备上运行 我的网站是 ww
  • 返回组的第一行

    我有一个数据框 其中包含ID 这对于组中的每个元素 两个日期时间以及这两个时间间隔都是相同的 日期时间对象之一是我的相关时间标记 现在我想获取数据帧的子集 其中包含每个组的最早条目 条目 尤其是时间间隔 需要保持不变 我的第一个方法是根据
  • git 和本地修改

    我正在探索如何使用 git 我刚刚做了以下测试 创建一个文件夹和2个文件 然后 git init git add git commit m 初始提交 创建分支 gitbranchexperimental gitcheckoutexperim
  • 在 ActiveRecord 中存储序列化哈希与键/值数据库对象的优缺点?

    如果我有几个对象 每个对象基本上都有一个Profile 我用什么来存储随机属性 有什么优点和缺点 将序列化哈希存储在记录的列中 与将序列化哈希存储在记录的列中不同 存储一堆键 值对象belong to主要对象 Code 假设您有如下 STI
  • Gorilla Mux 正则表达式

    我使用的是 Mux 包Golang 大猩猩工具包 http www gorillatoolkit org pkg mux对于我的路线 考虑以下路线 m HandleFunc admin install installHandler Meth
  • 如何删除 CSV 文件中的顶行(列标题)?

    我已经编写了一个脚本 该脚本将上传 CSV 文件 然后将数据提取到已制作的表中 我想让它的第一行 列标题 不会被插入到表中 但其余的数据会被插入到表中 fp fopen SESSION filename r while data fgetc
  • 我们将这种类型的参数传递 mul(1)(2)(3) 称为什么?如何解决这个问题以及如何解决这样的情况,如果像这样传递 n 个参数[重复]

    这个问题在这里已经有答案了 我们将这种类型的参数传递 mul 1 2 3 称为什么 如何解决这个问题 以及在像这样传递 n 个参数的情况下如何解决这种情况 我想了解这个概念是如何运作的 它被称为currying https en wikip
  • Hibernate Criteria 查询 - 嵌套条件

    我不知道如何使用 Hibernate Criteria Syntax 创建这样的查询 select from x where x a abc and x b def or x b ghi 您知道如何做到这一点吗 我正在使用 Hibernat
  • 获取 \p{L}+ 来匹配字符串[重复]

    这个问题在这里已经有答案了 我已经用头撞墙一个小时左右了 现在正在尝试我能想到的一切方法来让 p L 匹配 javascript 中的字符串 下面每次都返回 false 我不知道为什么 它可以在我的本地正则表达式测试器中运行 也可以在 re
  • 提高 WPF DataGrid 性能

    In my NET 3 5 WPF申请 我有一个WPF DataGrid其中将填充 500 列和 50 行 应用程序的性能在滚动时非常非常差 或者当我滚动时DataGrid Items Refresh 或在选择行时 实际上应用程序将需要大约