1

我有一个 WPF 应用程序,其 DataGrid 包含 10 个 DataGridTemplateColumns。当我将一组对象绑定到数据网格时,它们在网格中都显示得很好。唯一的问题是,如果我的行数超过了屏幕上没有滚动条的行数,那么这些列只会自动调整大小以适应屏幕上的值。例如,如果我向下滚动并到达第 1 列的值不适合的行,那么第 1 列将自动调整大小以适应它。这真的很烦人。有没有办法让它自动调整大小以适应集合中的所有项目,无论它们最初是否在屏幕上?我尝试将每列的 width 属性设置为 Auto ,但这没有做任何事情。提前感谢您的帮助

4

1 回答 1

1

之所以会出现此问题,是因为正在虚拟化数据网格中的行。因此,在需要显示之前,不需要绘制屏幕上未显示的项目(或计算它们的大小)。

您可以像这样关闭虚拟化:

<DataGrid VirtualizingStackPanel.IsVirtualizing="False" HorizontalScrollBarVisibility="Hidden">

但是请注意,如果您有很多项目,这样做可能会导致数据网格加载速度变慢,因为所有项目都将被“绘制”,即使没有显示在屏幕上。

于 2011-09-23T18:22:08.950 回答