private void ColumnResizerThumb_MouseDoubleClick(object sender, MouseButtonEventArgs e) { ColumnBase parentColumn = this.ParentColumn; if (parentColumn == null) { return; } e.Handled = true; double fittedWidth = parentColumn.GetFittedWidth(); if (fittedWidth != -1) { parentColumn.Width = fittedWidth; } }
double?BetterFittedWidth(ColumnBase cb) { List <object> sampleValues = ((GridVm)cb.DataGridControl.DataContext).Data.Cast <object>() .Select(r => GetField(r, cb)) .Where(v => v != null) .Take(5) .ToList(); sampleValues.Add(cb.Title); double w = cb.GetFittedWidth(); if (sampleValues.Any()) { double wcalc = 2 + 7 * sampleValues.Max(v => Convert.ToString(v).Length); w = Math.Max(wcalc, w); } if (w > 0) { return(w); } return(null); }