Index: Core/Common/src/Core.Common.Controls/DataGrid/DataGridViewControl.cs =================================================================== diff -u -r4edccb5b18b90b76f2825a72836ba9bffe4770a3 -r8d6f5fd7a52da4f8d0c6c3d84e898db811ca0a53 --- Core/Common/src/Core.Common.Controls/DataGrid/DataGridViewControl.cs (.../DataGridViewControl.cs) (revision 4edccb5b18b90b76f2825a72836ba9bffe4770a3) +++ Core/Common/src/Core.Common.Controls/DataGrid/DataGridViewControl.cs (.../DataGridViewControl.cs) (revision 8d6f5fd7a52da4f8d0c6c3d84e898db811ca0a53) @@ -376,6 +376,15 @@ } /// + /// Adjusts the width of the column on index to fit the contents of all its cells, + /// including the header cell. + /// + public void AutoResizeColumn(int columnIndex) + { + dataGridView.AutoResizeColumn(columnIndex); + } + + /// /// Ends the editing when the current cell is in edit mode. /// Sets the current cell to null. /// Index: Core/Common/test/Core.Common.Controls.Test/DataGrid/DataGridViewControlTest.cs =================================================================== diff -u -r4edccb5b18b90b76f2825a72836ba9bffe4770a3 -r8d6f5fd7a52da4f8d0c6c3d84e898db811ca0a53 --- Core/Common/test/Core.Common.Controls.Test/DataGrid/DataGridViewControlTest.cs (.../DataGridViewControlTest.cs) (revision 4edccb5b18b90b76f2825a72836ba9bffe4770a3) +++ Core/Common/test/Core.Common.Controls.Test/DataGrid/DataGridViewControlTest.cs (.../DataGridViewControlTest.cs) (revision 8d6f5fd7a52da4f8d0c6c3d84e898db811ca0a53) @@ -655,6 +655,74 @@ } [Test] + public void AutoResizeColumn_AddShorterText_DecreasesColumnWidth() + { + using (var form = new Form()) + using (var control = new DataGridViewControl()) + { + form.Controls.Add(control); + form.Show(); + + control.AddTextBoxColumn(nameof(TestDataGridViewMultipleColumnsRow.TestString), "Test"); + control.AddTextBoxColumn(nameof(TestDataGridViewMultipleColumnsRow.TestString), "Test 2"); + var dataSource = new[] + { + new TestDataGridViewMultipleColumnsRow(RoundedDouble.NaN, "Long text hello world") + }; + control.SetDataSource(dataSource); + + DataGridViewCell dataGridViewCell1 = control.GetCell(0, 0); + DataGridViewCell dataGridViewCell2 = control.GetCell(0, 1); + control.SetCurrentCell(dataGridViewCell1); + + int initialWidth1 = dataGridViewCell1.OwningColumn.Width; + int initialWidth2 = dataGridViewCell2.OwningColumn.Width; + dataSource[0].TestString = "Test"; + + // Call + control.AutoResizeColumn(0); + + // Assert + Assert.Less(dataGridViewCell1.OwningColumn.Width, initialWidth1); + Assert.AreEqual(dataGridViewCell2.OwningColumn.Width, initialWidth2); + } + } + + [Test] + public void AutoResizeColumn_AddLongerText_IncreasesColumnWidth() + { + using (var form = new Form()) + using (var control = new DataGridViewControl()) + { + form.Controls.Add(control); + form.Show(); + + control.AddTextBoxColumn(nameof(TestDataGridViewMultipleColumnsRow.TestString), "Test"); + control.AddTextBoxColumn(nameof(TestDataGridViewMultipleColumnsRow.TestString), "Test 2"); + var dataSource = new[] + { + new TestDataGridViewMultipleColumnsRow(RoundedDouble.NaN, "Test") + }; + control.SetDataSource(dataSource); + + DataGridViewCell dataGridViewCell1 = control.GetCell(0, 0); + DataGridViewCell dataGridViewCell2 = control.GetCell(0, 1); + control.SetCurrentCell(dataGridViewCell1); + + int initialWidth1 = dataGridViewCell1.OwningColumn.Width; + int initialWidth2 = dataGridViewCell2.OwningColumn.Width; + dataSource[0].TestString = "This is a long textwegawegwegwetawergawegawegtwaegwaeg."; + + // Call + control.AutoResizeColumn(0); + + // Assert + Assert.Greater(dataGridViewCell1.OwningColumn.Width, initialWidth1); + Assert.AreEqual(dataGridViewCell2.OwningColumn.Width, initialWidth2); + } + } + + [Test] public void AutoResizeColumns_AddShorterText_DecreasesColumnWidth() { using (var form = new Form())