private void InitializeColumnWidths() { var heightPxOrNull = _view.GetBodyRowHeight(0); if (heightPxOrNull.HasValue) { Logger.Debug(GetType(), "Datagrid returned row height {0}", heightPxOrNull); _rowHeightPx = heightPxOrNull.Value; } _model.Columns.ForEachI((i, c) => { var widthPx = _view.GetFactColumnWidth(i); if (widthPx.HasValue) { Logger.Debug(GetType(), "column {0} at {1} has computed width {2}", c, i, widthPx); c.ComputedWidth = widthPx.Value; } }); _model.Columns.ForEachI((colIdx, col) => _view.SetColumnWidth(colIdx, col.Width)); HasColumnsHeights = true; }