我有一个包含10个DataGridTemplateColumns的DataGrid的WPF应用程序。当我将一组对象绑定到数据网格时,它们在网格中都显示正常。唯一的问题是,如果我有更多的行而不是没有滚动条的屏幕,则列只会自动调整大小以适应屏幕上的值。例如,如果我向下滚动并到达第1列的值不适合的行,则第1列将自动调整以适合它。这真的很烦人。是否无法使其自动调整以适应集合中的所有项目,无论它们最初是否在屏幕上?我已经尝试将每列的width属性设置为Auto但是没有做任何事情。在此先感谢您的任何帮助
答案 0 :(得分:1)
问题是由于数据网格中的行被虚拟化而引起的。因此,在需要显示之前,不需要绘制屏幕上未显示的项目(或计算其大小)。
您可以像这样关闭虚拟化:
<DataGrid VirtualizingStackPanel.IsVirtualizing="False" HorizontalScrollBarVisibility="Hidden">
但请注意,如果您拥有大量商品,那么这样做可能会导致您的数据网格加载速度变慢,因为所有商品都会被抽取。即使没有在屏幕上显示。