wpf - DataGrid 行虚拟化显示问题

标签 wpf datagrid row virtualization

我们目前有 DataGrid绑定(bind)到 DataTable .它还有一个带有 CheckBox 的模板列。在其中我们以编程方式添加。此列的目的是跟踪 DataGrid 中的多项选择。 .

工厂用于创建 CheckBox es 为每一行。

记录不少,所以行虚拟化设置为true,这样性能可以接受。但是,我们看到一个奇怪的问题,如果我们检查一些 CheckBox es 在前 10 行,然后向下滚动大约 50 行(网格在任何时候都有大约 10 行可见),还有一堆其他的 CheckBox es 似乎是随机检查的。

如果我们禁用行虚拟化,则不存在此问题(但性能很糟糕)。有没有办法解决?有谁知道我们可能做错了什么?

最佳答案

如果您正在寻找速度 ListView Gridview 要快得多(并且功能更少)。

尝试禁用容器回收。

             <tk:DataGrid x:Name="dataGrid" 
             ItemsSource="{Binding Path=Bookings}" 
             AutoGenerateColumns="False" 
             EnableRowVirtualization="True" 
             EnableColumnVirtualization="True"
             VirtualizingStackPanel.VirtualizationMode="Standard"
             VirtualizingStackPanel.IsVirtualizing="True">

关于wpf - DataGrid 行虚拟化显示问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9949358/

相关文章:

c# - 命令生成器更新不起作用

wpf - 需要相当于 SystemInformation.DragSize 的 Wpf

c# - 'clr-namespace' URI 指的是未包含在程序集中的命名空间

c# - 如何修复 WPF Datagrid 中的 "Two-way binding requires Path or XPath"异常?

excel - POI : Unexpected record type org. apache.poi.hssf.record.HyperlinkRecord

python - PySpark:根据列中的数字和多个条件创建新行(爆炸)

MySQL触发器更新最后插入的行

c# - 在 WPF 中将 ResourceDictionary 与其他样式一起使用

c# - 如何在设计模式下调试 WPF 用户控件?

gwt - GWT中Datagrid和CellTable的区别