我有一个DataGrid
,它是从代码中生成的。
DataGrid dataGrid = new DataGrid();
dataGrid.AutoGeneratedColumns = false;
for (int i = 0; i < 3; i++) // Add some columns
{
DataGridBoundColumn column = new DataGridTextColumn();
column.Width = new DataGridLength(1, DataGridLengthUnitType.Star);
column.Header = String.Format("Hello World {0}!", i);
dataGrid.Columns.Add(column);
}
return dataGrid;
这导致DataGrid
宽度为Double.NaN
,这就是我想要的,并且它有3列,就像我想要的那样,但是,列的大小不正确。它们每个都占用尽可能少的空间,而不是填充DataGrid
的整个空间。
当我手动设置DataGrid
的宽度时,列的行为应该正常,填满整个宽度,每个宽度都相等。
下面是错误的DataGrid
。
答案 0 :(得分:1)
您可以尝试推迟列填充,直到数据网格的Loaded
事件被触发(然后取消挂起事件处理程序)。但是,当数据网格调整大小时,网格似乎不会更新列宽。修改列集合,项目源更改或列的可见性更改时,计算出的宽度似乎无效。