原因
DataGrid 的 EnableRowVirtualization 属性默认值是True,就是说动态加载数据,只实例化屏幕内可见的数据;行头的内容是通过绑定实现的,但是滚动刷新时传入的DataGridRow并不是实际位置的行,而是虚拟的,造成行头显示内容错乱;
解决办法
方法1:设置EnableRowVirtualization="False",简单易行,但系统资源的开销大
方法2:不用禁用 EnableRowVirtualization,设置 DataGrid 的 VirtualizingStackPanel.VirtualizationMode="Standard"
原文链接:https://blog.csdn.net/qq_29821795/article/details/120409288