DataGrid行虚拟化显示问题

WPF*_*bie 26 wpf virtualization datagrid row

我们目前有一个DataGrid必然的DataTable.它还有一个模板列,CheckBox其中包含我们以编程方式添加的内容.此列的目的是跟踪多个选择DataGrid.

工厂用于CheckBox为每行创建es.

有相当多的记录,因此行虚拟化设置为true,以便性能可以接受.然而,我们看到一个奇怪的问题,如果我们CheckBox在前10行检查一些es然后向下滚动大约50行(网格在任何时候都有大约10行可见),那么会出现一堆其他的CheckBoxes随机检查.

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

pap*_*zzo 27

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

尝试禁用容器回收.

             <tk:DataGrid x:Name="dataGrid" 
             ItemsSource="{Binding Path=Bookings}" 
             AutoGenerateColumns="False" 
             EnableRowVirtualization="True" 
             EnableColumnVirtualization="True"
             VirtualizingStackPanel.VirtualizationMode="Standard"
             VirtualizingStackPanel.IsVirtualizing="True">
Run Code Online (Sandbox Code Playgroud)

  • 如果您在VirtualisationMode之前编写IsVirtualising,则会出现异常(至少在.NET 4.5中)...您需要更改顺序 (5认同)
  • VirtualizationMode =“ Standard”获胜! (2认同)