Существует разница между использованием:
double width = 25.0;
myDataGridColumn.Width = width;
и
double width = 25.0;
myDataGridColumn.Width = new DataGridLength(width, DataGridLengthUnitType.Pixel);
Последний активирует пересчет ActualWidth
, но не первый.
Не знаю почему.