一个非常简单的 WPF 数据网格,绑定到图像列表。在使用分隔符(或主窗口本身)调整列大小时,CPU 达到 100%,应用程序进入排列/调整大小的无限循环,导致窗口内容来回跳跃并且不再处理用户输入(锁定)。
数据网格定义为:
<DataGrid ItemsSource="{Binding ImageList}" AutoGenerateColumns="False" x:Name="ImageGrid">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Image 1" Width="40*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Source="{Binding ImagePath}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="EmptyText" />
</DataGrid.Columns>
</DataGrid>
- 问题的视频在这里(请原谅糟糕的编码)。
- 我非常简化的测试项目在这里。
- 我认为这是Microsoft Connect上描述的这个错误。
我尝试过的事情:
- 继承 DataGrid 并覆盖网格的 Arrange/Measure。
- 覆盖窗口的排列/测量。
- 调整网格滚动条,关闭它们和各种选项。
我不能做的:
- 升级到 .Net 4.5 不是此项目的选项。
- 删除列,那么网格中就没有点了。
.Net 4.0 中的这种行为有什么办法吗?如果没有,我将不得不考虑一种解决方法,例如使用其他东西来代替网格,尽管我已经花了很长时间对其进行造型并且不愿意失去这项工作。
提前致谢